在页面加载时阻止单击链接

时间:2011-02-08 03:24:24

标签: javascript html javascript-events

我有一个带有一些链接的网页,我需要通过jQuery拦截链接点击事件。任务完成得很好,但随后出现问题:如果用户在javascript未完成加载时单击链接,则链接到另一个页面(这是一个错误)。

我试图找到一种方法在页面加载完成之前禁用链接点击,但现在最好的解决方案是我必须将onclick="return false;"添加到我的链接中,这不是很优雅。有没有更好的解决方案?

感谢您的帮助,

4 个答案:

答案 0 :(得分:5)

您可以尝试使用初始化脚本:

<script language="javascript">

var loaded = false;

function SetLoaded() { loaded = true; }

window.onload = SetLoaded;

</script>

然后您可以将onclick="return loaded;"添加到您的href中。由于加载在页面加载之前不会成立,因此应禁用添加此链接的任何链接。

答案 1 :(得分:3)

今天我遇到了这个问题所以我做了R&amp; D并想出了另一种方式。 在页面加载后,document.readyState将“完成”,因此您可以检查其值,如。

 if(document.readyState=='complete')
 {
   //// call script or do anything which you want to do.
 }

答案 2 :(得分:1)

让jQuery在document.ready()中的链接中设置href。也许在你的链接前加上'#',并让jQuery去除它们。

答案 3 :(得分:0)

这是我已经解决的一个解决方案:使用放在链接前面的掩码来防止点击事件。

<div class="LinkMasker"></div>

.LinkMasker {
    position: absolute;
    z-index: 999;
    width: ...px;
    height: ...px;
}

页面加载后&amp;我的活动都已注册,我删除了掩码:

$('.LinkMasker').remove();