У меня есть страница, которая запрашивает установку Google Chrome Frame, если пользователь использует устаревший браузер.
Он отлично работает, если пользователь хочет установить плагин. Но если он/она не захочет установить его и закрыл слой; Невозможно снова открыть слой с помощью той же кнопки. (В принципе, он работает только один раз.)
Есть ли способ заставить Google Chrome Frame открываться каждый раз, когда я нажимаю на установку?
(Я пытался заставить файл cookie, но, похоже, не работает.)
update [# 1]:
Страница тестирования здесь.
<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js"></script>
<![endif]-->
</head>
<body>
<a href="#" class="dngcf">Prompt</a>
<script>
$(function(){
if( $.browser.msie && $.browser.version < 9 ){
if( navigator.userAgent.indexOf('chromeframe') < 0 ){
$('.dngcf').bind('click', function(){
//document.cookie = 'disableGCFCheck=0;path=/;';
CFInstall.check({
url: 'http://www.google.com/chromeframe/eula.html?user=true',
mode: "overlay",
destination: "http://mywebsite.com"
});
});
}else{
alert('GCF is already installed');
}
}else{
alert('You need IE 6, 7 or 8 in order to see the "bug".');
}
});
</script>
</body>
</html>
update [# 2]:
Кажется, это проблема , связанная с сеансом.
Когда я перезапускаю браузер, ссылка снова работает один раз. Но, однако, я не только обновляю страницу.
[вывод]
Это поведение по дизайну. Он позволяет администратору check()
для GCF на каждой отдельной странице, не раздражая пользователя с подсказкой каждый раз.
Принятый ответ позволяет обойти это поведение.