我写了一个小的javascript函数,在表单输入文本字段中触发onFocus时检查cookie。
如果找到了cookie,则弹出一个对话框,欢迎该人返回该站点。
但在Chrome中,每次关闭对话框时都会弹出一个新对话框。我想这是因为文本字段在技术上仍然是“聚焦”。
但是在Firefox或IE9中不会出现此问题。
我在Chrome中通过添加我当前评论过的行来解决它。但我想知道的是,如果这种行为被认为是一种错误或正常行为,如果这是正常的,那么为什么其他浏览器的行为会有所不同呢?
以下是javascript代码示例:
//var checked = 0;
var checkIt = getCookie('cia_db');
function checkCookie() {
// if(checked == 0) {
if(checkIt == 'logged_in') {
alert('Welcome back to CIA headquarters.');
//return true;
}
//}
//checked++;
}
这是html:
<form id="form1" name="form1" action="" method="get">
<input type="text" name="username" id="username" value="smeegle" size="15" onfocus="checkCookie();">
等...
答案 0 :(得分:4)
当警报出现时,该字段将失去焦点(),当警报关闭时,chrome会将焦点返回到输入,因此onfocus会再次触发。
其他浏览器可能会在关闭警报后将焦点放在窗口上,因此onfocus不会再次触发。 我不会称之为bug,这是一种不同的行为。
解决方案:
在警报()