处理浏览器的地点击之前dom:装
-
11-07-2019 - |
题
我有一个问题与跨浏览器地活动vs回事件。
我有一个HTML链接"点击我的"给定 href=""
.上 dom:loaded
我附上的一个函数向本链接(做阿贾克斯的东西).
JavaScript code被装载在结束页遵循YSlow的推荐。
的问题:
如果你装载这页很快(按F5),然后点击链接
- 的
alert()
不叫 - 本链接(重新载入页)
它发生在服务器滞后。事实上,该网页还没有完成装载和浏览器执行码。
演示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<a href="#toolate" id="action">Click Me</a>
<!-- According to YSlow Recommandation load at the bottom -->
<script src="../js/lib/prototype.js" type="text/javascript" language="JavaScript"></script>
<script>
/* <![CDATA[ */
document.observe('dom:loaded', function() {
$('action').observe('click', function(event){ alert("click"); Event.stop(event); });
});
/* ]]> */
</script>
</body>
</html>
转身:
一转身是增加 onClick="return false;"
:
<a href="#toolate" id="action" onClick="return false;">Click Me</a>
它适用于滞后,但不是用于快速击。我不喜欢这样的扭转是因为我的目标是消除的 onclick
在所有 <a href="">
最好的问候
解决方案 2
我们已经做了很多很多的试验对我们的CMS在许多浏览器。
根据速度:
- JavaScript不能执行之前真的很快点击
- 击="return false"工作现在大多数情况下
- JavaScript做2.) 加载过慢,但可能是足够多的
- DIV使用作为屏蔽带来的其他问题并不是一个好的选择
其他提示
你可以看看这个:
JQuery有一个方便点的功能, 启动javascript尽快 该文件对象的模式是准备... 这种情况发生之前页 完成加载。
$(document).ready(function(){ //
Your code here...
});
你也可以把一个很大的障碍div在前一切的同时,页面被加载到禁止的点击,但是我不会推荐它。
不知道,如果我收到了你的问题的权利,如果让我知道我没有
它似乎喜欢你有事情非常好的方面,以及所有你想做的就是建立一些链接,其做 没有什么 在区域优雅的退化是不可能的。
在这些情况下,我建议与以下格式:
<a href="javascript:void(0);">Linktext</a>
这个链接,应该在功能上这样做绝对没有与javascript启用或禁用。
重要的笔记
- 数零的空隙是绝对必要的。Internet Explorer会抱怨,否则。
- 使用"javascript:void(0);"强烈建议不要通过微软因为奇怪的事情可以发生。要避免广大的错误,不包裹的东西,但文本在你的无效(0)的链接。
- 你做出决定之前一定要仔细考虑,如果添加"javascript:void(0);"真的是一个更好的解决方案于加入果返回错误的。
消除href属性:
除href从属性的链路是有效的XHTML。尽管是有效的XHTML,你的链接时将自动失去其链接造型。没有更多的强调,没有更多的色彩的,没有更多的悬停,并没有更多的自动颜色的改变,如果链接访问。
你不可能修复,缺少风格与CSS或者是由于参差不齐的支持:悬停在互联网浏览器。
不隶属于 StackOverflow