2013-12-01 6 views
2

Я пытаюсь показать пользователям уведомления, если браузер не Chrome.Уведомление обозревателя Javascript не работает

То, что я до сих пор

ДИВ, чтобы показать, когда, если браузер кроме хрома:

<div id="notify"> Please use chrome browser </div> 

CSS:

#notify{ 
    display:none; 
} 

и Javascript как найдено here:

<script> 
var isChrome = !!window.chrome && !isOpera; 
      if(isChrome==false) //if the browser is not chrome 
      { 
       alert("Please Use chrome browser"); // this works 
       document.getElementById('notify').show(); //this doesn't work 
      } 
</script> 

сценарий находится над тегом div.
Что случилось со вторым статутом?

+0

** ', пожалуйста, используйте браузер Chrome console' ** – charlietfl

+1

Есть особая причина, почему вы хотите, чтобы кто-то использовать хром на вашем сайте/веб-приложение? Обнаружение браузера действительно должно быть сделано, нет другой возможности.Проблема в том, что, с одной стороны, кто-то может изменить имя пользователя-агента, и даже продавец может изменить его с новой версией (например, MS с IE 11). –

+0

Ваш скрипт должен быть расположен ПОСЛЕ тега div, или вы должны подождать пока страница не будет загружена перед ее запуском. – jfriend00

ответ

4

show не является родным методом Javascript. Если вы используете JQuery, правильный синтаксис будет

$('#notify').show()

если вы используете ванилин Javascript вы должны использовать:

document.getElementById('notify').style.display = 'block';

положить также script ниже div тега.

+1

Для простого JS лучше использовать 'document.getElementById ('notify'). style.display = "block"; 'и не перезаписывать другие значения стиля, которые могут быть установлены. – jfriend00

+0

Хороший вопрос, обновленный мой пример –

+0

Это не работает? –

1

Пожалуйста, не смешивайте функцию .show() JQuery с селектором JavaScript. Пожалуйста, прочитайте это для полной ссылки, Jquery ID selectors

Вместо этого,

document.getElementById('notify').show(); 

Используйте это,

$('#notify').show(); 
1

Попробуйте использовать,

document.getElementById('notify').style.display='block'; 

вместо,

document.getElementById('notify').show(); 
1
$("#notify").show() 

вместо

document.getElementById('notify').show(); 

DEMO HERE

0

Если вы действительно должны сделать такую ​​вещь, изменить содержание документа, а не только для укладки (которые будут игнорироваться в некоторых ситуациях). И манипулирование элементом возможно только после того, как элемент был проанализирован. Пример:

<div id="notify"></div> 
<script> 
if(!window.chrome || isOpera) { 
    document.getElementById('notify').innerHTML = 
     'Please use the Chrome browser.'; 
} 
</script> 
Смежные вопросы