Как я могу скрыть отделение с JavaScript, если браузер является Firefox только?
Чтобы проверить браузер Firefox
//Javascript
var FIREFOX = /Firefox/i.test(navigator.userAgent);
if (FIREFOX) {
document.getElementById("divId").style.display="none";
}
<!-- HTML-->
<div id="divId" />
Просто проверьте свойство 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) рекомендует избегать обнаружения агента-агента.
function detectBrowser(){
....
}
hDiv = .... //getElementById or etc..
if (detectBrowser() === "firefox"){
hDiv.style.display = "none"
}
Вы можете попробовать сценарий Rafeal Lima CSS Browser Selector . Он добавляет несколько классов к элементу HTML для ОС, браузера, поддержки js и т. Д. Затем вы можете использовать эти классы в качестве перехватчиков для дальнейшего CSS и / или JS. Вы можете написать селектор CSS (или jQuery), например html.gecko div.hide-firefox
, после запуска скрипта.
if(document.body.style.MozTransform!=undefined) //firefox only
«Является ли браузер 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>