Chcę dołączyć plik JavaScript tylko wtedy, gdy przeglądarka nie jest IE. Czy jest jakiś sposób to zrobić?Zawierają różne pliki JavaScript w zależności od przeglądarki?
Odpowiedz
Można to zrobić z IE conditional comments, tak:
<![if !IE]>
<script src="your-non-IE-script.js" type="text/javascript"></script>
<![endif]>
Należy zauważyć, że powyższe jest przetwarzany przez przeglądarki non-ie, ponieważ uwarunkowane jest nie komentarzu HTML , ale instrukcja przetwarzania,, więc bit w środku jest przetwarzany przez przeglądarki inne niż IE. IE widzi warunkowe i pomija treść, ponieważ rozumie warunkowe znaczenie "Nie ty, idź dalej".
Jeśli chcesz coś zrobić tylko dla IE, możesz skorzystać z formularza, który jest podobny, ale używa komentarzy HTML zamiast (z --
), ponieważ jest to jedyny sposób można polegać na innych przeglądarkach ignorując zawartość. IE wie, aby zwracać na nie uwagę, mimo że są komentarzami. Więcej na powyższym linku.
Zauważ, że tam jest implikacja strona Prędkość bez obciążenia na IE (a nie innych przeglądarek) podczas korzystania z komentarzy warunkowych (oni tymczasowo zablokować pobieranie innych zasobów), więcej tutaj: http://www.phpied.com/conditional-comments-block-downloads/
Aktualizacja 2013 : IE10 + nie obsługuje już komentarzy warunkowych.
Chciałbym tylko zauważyć, że nie jest to instrukcja przetwarzania. To po prostu zastrzeżona składnia Microsoftu. Instrukcja przetwarzania ma postać ' Processing-instruction-name-here ... data here ...?>'. –
@ Eli: Rzeczywiście (http://en.wikipedia.org/wiki/Processing_Instruction). Wow, zawsze myślałem, że to instrukcje przetwarzania. Dzięki! –
Możesz zrobić to w zupełnie inny sposób [wstawiając TYLKO, jeśli IE], używając Warunkowych komentarzy, może to ci pomoże.
Możesz także wstawić coś tylko wtedy, gdy jest * nie * IE, używając warunkowych komentarzy IE. Tak naprawdę. –
Dobrze wiedzieć - dzięki! –
Można użyć IE conditional comment.
Aby uzyskać coś, co będzie wyświetlane w przeglądarkach innych niż IE, ale nie w IE, i która nadal będzie zweryfikować, można użyć:
<!--[if !IE]>-->
<script src="..."></script>
<!--<![endif]-->
Jak o obracając ją wokół? Jeśli jest taka możliwość, możesz użyć warunkowych komentarzy IE: http://www.quirksmode.org/css/condcom.html
W przeciwnym razie możesz powąchać programy użytkownika, ale jest to uważane za "złą praktykę".
Nie musisz tego odwracać, komentarze warunkowe IE mogą być używane do kierowania na przeglądarki inne niż IE (tak, naprawdę). –
Po pierwsze, uwaga: To naprawdę nie jest dobra praktyka. Jeśli to możliwe, powinieneś starać się zaprojektować swoją stronę internetową w sposób niezależny od przeglądarki, tak aby działała ona konsekwentnie we wszystkich przeglądarkach, bez potrzeby utrzymywania hacków i sztuczek dla problemów specyficznych dla przeglądarki.
Ale jeśli naprawdę chcesz to zrobić, to najłatwiej to plik tylko wtedy, gdy przeglądarka jest IE: (. Zawiera plik tylko wtedy, gdy przeglądarka jest IE6 lub mniej)
<!--[if lt IE 7]>
<script type="text/javascript" src="global.js"></script>
<![endif]-->
Jednakże, jeśli naprawdę chcesz to zrobić na odwrót, oto niektóre z dostępnych opcji:
- użycie przeglądarka server-side wąchania przetwarzać przeglądarkę zanim strona zostanie narysowana.Oznacza to, że używaj języka po stronie serwera (Java, PHP, cokolwiek), aby określić, czym jest przeglądarka (zwykle za pośrednictwem łańcucha agenta użytkownika), a następnie warunkowo dołącz pliki JS w ten sposób. (Na przykład możesz użyć funkcji PHP
get_browser
.) - Używanie wąchania przeglądarki po stronie klienta do wywoływania innego pliku JS, jeśli przeglądarka nie jest IE. Możesz określić przeglądarkę za pomocą samego JavaScript, a następnie wstawić inny plik JS na stronę, jeśli przeglądarka jest czymś innym niż IE. (Na przykład można użyć funkcji jQuery:
browser
). - T.J.'s answer zapewnia także sposób wykonywania tego przy pomocy warunkowych komentarzy I.E.
Tak, skrypty warunkowe dla IE jest odpowiedź:
<!--[if lt IE 7 ]>
<script src="/js/my_ie_script.js"></script>
<![endif]-->
To zrobi quasi przeciwieństwo tego, o co prosił OP. –
Dang, masz rację. Jak przegapiłem "nie" w pytaniu PO. Jest późno! – mkoistinen
To mniej znany niż komentarzy warunkowych, ale pomyślałem, że wspomnieć, że można również użyć funkcji IE nazwie kompilacja warunkowa - zobacz http://msdn.microsoft.com/en-us/library/7kx09ct1%28VS.80%29.aspx
Ten przykład pochodzi z ich docs:
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
document.write("JScript Version 5.0 or better.<BR>");
@else @*/
document.write("You need a more recent script engine.<BR>");
/*@end @*/
- 1. Pozycja div w zależności od krawędzi przeglądarki odległości (javascript)
- 2. Jak wyświetlać różne pliki javascript według szerokości przeglądarki
- 3. Jak uzyskać różne zależności w zależności od rodziny OS
- 4. Czy pliki JavaScript zawierają BOM, czy nie?
- 5. Różne pliki CSS dla każdej przeglądarki?
- 6. Różne 404 strony w zależności od aplikacji w Django
- 7. obliczeniowe różne sumy w zależności od wartości jednej kolumny
- 8. $ .post jQuery szybszy lub wolniejszy w zależności od przeglądarki?
- 9. zawierają pliki rekursywnie w Cocoapods podspec
- 10. Wstrzykiwanie zależności od modułów
- 11. Zmienne środowiskowe w zależności od niestandardowej zależności od użytkownika
- 12. Dlaczego string.Normalize nie jest spójny w zależności od kontekstu?
- 13. Złap błędy JavaScript w Selenium WebDriver - Niezależnie od przeglądarki
- 14. Mapy Google ustawiają różne zbliżenia w zależności od zmiany rozmiaru okna
- 15. Określanie TSQL w zależności od najwyższej daty
- 16. Masz różne zależności w kompilacjach klas?
- 17. Rozgałęzienie: różne pliki konfiguracyjne do wydania/rozwoju
- 18. Woocommerce - Cena produktu w zależności od kraju
- 19. Lista zależności Javascript
- 20. Podziel mój komputer na różne pliki
- 21. Walidacja CakePHP w zależności od innego pola
- 22. Autowire zależności od podklasy
- 23. Chcę pobrać wszystkie pliki cookie z przeglądarki
- 24. SQL Database Project: buduj różne skrypty w zależności od konfiguracji kompilacji.
- 25. Wykrywanie Javascript Javascript rodzimej przeglądarki
- 26. CMake: zależności od zewnętrznego projektu
- 27. cyfrowo podpisane pliki JavaScript
- 28. Najlepsza praktyka zależności od #defines?
- 29. Wykluczenie zależności od generowania klientów maven ejb
- 30. Debugowanie dynamicznie dodawane pliki javascript
czy chcąc korzystać tylko obsługa JavaScript, żeby to zrobić lub czy używasz również języka po stronie serwera? –