Próbowałem zastosować .trim()
ciąg znaków w jednym z moich programów JavaScript. Działa poprawnie pod Mozillą, ale błąd pojawia się, gdy próbuję go w IE8. Czy ktoś wie, co się tutaj dzieje? Czy w każdym razie mogę sprawić, by działało w IE?
kod:
var ID = document.getElementByID('rep_id').value.trim();
wyświetlanie błędów:
Wiadomość: Obiekt nie obsługuje tej właściwości lub metody Linia: 604 Char: 2 Kod: 0 URI: http: //test.localhost/test.js
javascript
internet-explorer
trim
Jin Yong
źródło
źródło
"whatever ".trim()
spróbuj tego na IE8.trim()
i nie uwierzyłem własnym oczom, kiedy zorientowałem się, że to nie jest obsługiwane. Dzięki za wyjaśnienie. Chciałem zapytać tak samo jak ty.Odpowiedzi:
Dodaj następujący kod, aby dodać funkcję przycinania do łańcucha.
źródło
replace(/^\s\s*/, '').replace(/\s\s*$/, '')
powinno to być około 3 razy szybsze niżreplace(/^\s+|\s+$/, '')
w Firefoksie 2, według jednego testu: blog.stevenlevithan.com/archives/faster-trim-javascriptreplace(/^\s+|\s+$/, '')
usuwa tylko spacje początkowe lub końcowe, co nie jest oczekiwanym działaniem funkcji przycinania. Jeśli chcesz usunąć zarówno początkowe, jak i końcowe spacje, musisz użyćreplace(/^\s+|\s+$/g, '')
.Wygląda na to, że ta funkcja nie jest zaimplementowana w IE. Jeśli używasz jQuery, możesz użyć
$.trim()
zamiast tego ( http://api.jquery.com/jQuery.trim/ ).źródło
jQuery:
Ktoś używa,
$("#mycomment").val().trim();
ale to nie będzie działać w IE.źródło
Niestety nie ma obsługi JavaScript w przeglądarce dla trim ().
Jeśli nie używasz jQuery (która ma metodę .trim ()), możesz użyć następujących metod, aby dodać obsługę przycinania do ciągów:
źródło
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim
Jest to całkiem nowy dodatek do javascript i nie jest obsługiwany przez IE.
źródło
Miałem podobny problem, gdy próbowałem przyciąć wartość z danych wejściowych, a następnie zapytać, czy jest ona równa zeru:
Jednak to rzuciło kluczem w pracach dla IE6 - 8. Irytujące było, że starałem się go tak przerobić:
Jednak metoda przycinania jQuery działa dla mnie idealnie we wszystkich przeglądarkach.
źródło
Napisałem kod do implementacji funkcji przycinania.
LTRIM (wykończenie po lewej):
RTRIM (wykończenie po prawej):
WYKOŃCZENIE (przycinanie po obu stronach):
LUB
Dostępne jest również wyrażenie regularne, którego możemy użyć.
Przydatne wyjaśnienie
źródło
\t
,\r
,\n
i takie. Tylkospaces
. Regexp jest lepszy, jeśli nie masz ochoty na ręczną obsługę wszystkiego.Możemy uzyskać oficjalny kod z Internetu! Zobacz to:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim
więcej: Właśnie znalazłem projekt js do obsługi EcmaScript 5: https://github.com/es-shims/es5-shim czytając kod źródłowy, możemy uzyskać więcej wiedzy na temat trim.
źródło
Nie sądzę, że istnieje natywna
trim()
metoda w standardzie JavaScript. Może Mozilla dostarcza jeden, ale jeśli chcesz go w IE, musisz go napisać sam. Na tej stronie znajduje się kilka wersji .źródło
Miałem ten sam problem w IE9 Jednak kiedy zadeklarowałem obsługiwaną wersję HTML z następującym znacznikiem w pierwszym wierszu przed
Problem został rozwiązany.
źródło
Jest to spowodowane błędem literówka getElementBy ID . Zmień to na getElementById
źródło
źródło
Właśnie dowiedziałem się, że IE przestaje obsługiwać
trim()
, prawdopodobnie po ostatniej aktualizacji systemu Windows. Jeśli używasz dojo, możesz go używaćdojo.string.trim()
, działa na wielu platformach.źródło
Ten problem może być spowodowany przez IE korzystający z trybu zgodności w witrynach intranetowych. Istnieją dwa sposoby rozwiązania tego problemu: możesz zaktualizować IE, aby nie korzystał z trybu zgodności na komputerze lokalnym (w IE11: Narzędzia-> Ustawienia widoku zgodności -> Odznacz opcję Wyświetl witryny intranetowe w widoku zgodności)
Jeszcze lepiej możesz zaktualizować metatagi na swojej stronie. Dodać:
Co to znaczy? Mówi IE, aby używał najnowszego trybu zgodności. Więcej informacji jest dostępnych w MSDN: Określanie starszych trybów dokumentów
źródło