我有一个问题与跨浏览器地活动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在许多浏览器。

根据速度:

  1. JavaScript不能执行之前真的很快点击
  2. 击="return false"工作现在大多数情况下
  3. JavaScript做2.) 加载过慢,但可能是足够多的
  4. DIV使用作为屏蔽带来的其他问题并不是一个好的选择

其他提示

你可以看看这个:

JQuery有一个方便点的功能, 启动javascript尽快 该文件对象的模式是准备... 这种情况发生之前页 完成加载。

$(document).ready(function(){   //
 Your code here... 
});

通过

你也可以把一个很大的障碍div在前一切的同时,页面被加载到禁止的点击,但是我不会推荐它。

不知道,如果我收到了你的问题的权利,如果让我知道我没有

它似乎喜欢你有事情非常好的方面,以及所有你想做的就是建立一些链接,其做 没有什么 在区域优雅的退化是不可能的。

在这些情况下,我建议与以下格式:

<a href="javascript:void(0);">Linktext</a>

这个链接,应该在功能上这样做绝对没有与javascript启用或禁用。

重要的笔记

  1. 数零的空隙是绝对必要的。Internet Explorer会抱怨,否则。
  2. 使用"javascript:void(0);"强烈建议不要通过微软因为奇怪的事情可以发生。要避免广大的错误,不包裹的东西,但文本在你的无效(0)的链接。
  3. 你做出决定之前一定要仔细考虑,如果添加"javascript:void(0);"真的是一个更好的解决方案于加入果返回错误的。

消除href属性:

除href从属性的链路是有效的XHTML。尽管是有效的XHTML,你的链接时将自动失去其链接造型。没有更多的强调,没有更多的色彩的,没有更多的悬停,并没有更多的自动颜色的改变,如果链接访问。

你不可能修复,缺少风格与CSS或者是由于参差不齐的支持:悬停在互联网浏览器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top