Скройте элемент HTML с помощью JavaScript, только если браузер является Firefox

Как я могу скрыть отделение с JavaScript, если браузер является Firefox только?

7
задан Rich Bradshaw 16 March 2010 в 13:39
поделиться

6 ответов

Чтобы проверить браузер Firefox

//Javascript
var FIREFOX = /Firefox/i.test(navigator.userAgent);

if (FIREFOX) {
  document.getElementById("divId").style.display="none";
}


<!-- HTML-->
<div id="divId" />
8
ответ дан 6 December 2019 в 09:18
поделиться

Просто проверьте свойство JavaScript, относящееся к FF. Например.

var FF = (document.getBoxObjectFor != null || window.mozInnerScreenX != null);

if (FF) {
    document.getElementById("divId").style.display = 'none';
}

Это называется обнаружением функции , которое предпочтительнее по сравнению с обнаружением агента пользователя. Даже jQuery $. Browser API (из которых вы бы использовали if ($ .browser.mozilla) for) рекомендует избегать обнаружения агента-агента.

7
ответ дан 6 December 2019 в 09:18
поделиться
function  detectBrowser(){
  ....
}

hDiv = .... //getElementById or etc..

if (detectBrowser() === "firefox"){
  hDiv.style.display = "none"
}
1
ответ дан 6 December 2019 в 09:18
поделиться

Вы можете попробовать сценарий Rafeal Lima CSS Browser Selector . Он добавляет несколько классов к элементу HTML для ОС, браузера, поддержки js и т. Д. Затем вы можете использовать эти классы в качестве перехватчиков для дальнейшего CSS и / или JS. Вы можете написать селектор CSS (или jQuery), например html.gecko div.hide-firefox , после запуска скрипта.

0
ответ дан 6 December 2019 в 09:18
поделиться
 if(document.body.style.MozTransform!=undefined) //firefox only
2
ответ дан 6 December 2019 в 09:18
поделиться

«Является ли браузер Firefox» почти всегда неправильным вопросом. Конечно, вы можете начать пресмыкаться через строку User-Agent , но она настолько часто вводит в заблуждение, что трогать ее не стоит, кроме как в самом крайнем случае.

Это также непонятный вопрос, поскольку существует множество браузеров, не являющихся Firefox, но основанных на одном и том же коде, поэтому они фактически одинаковы. Это SeaMonkey Firefox? Это Flock Firefox? Фенек Firefox? Iceweasel Firefox? Firebird (или Phoenix!) Firefox? Является ли Minefield Firefox?

Лучший способ - точно определить , почему вы хотите относиться к Firefox по-разному, и проанализировать эту единственную функцию. Например, если вы хотите обойти ошибку в Gecko, вы можете попытаться вызвать эту ошибку и обнаружить неправильный ответ скрипта.

Если по какой-то причине это невозможно, обычно средство рендеринга Gecko проверяет наличие свойства, доступного только для Mozilla. Например:

if ('MozBinding' in document.body.style) {
    document.getElementById('hellononfirefoxers').style.display= 'none';
}

edit: если вам нужно выполнить тест в , прежде чем body или целевой div будут в документе, вы может сделать что-то вроде:

<style type="text/css">
    html.firefox #somediv { display: none }
</style>
<script type="text/javascript">
    if ('MozBinding' in document.documentElement.style) {
        document.documentElement.className= 'firefox';
    }
</script>
2
ответ дан 6 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: