选项卡式浏览导致Javascript不一致?

时间:2009-08-07 20:20:16

标签: javascript html tabbed-browsing

在选项卡式浏览器(对我来说是FF 3.5)中,我经常在新选项卡中打开链接,只需按住CTRL键或单击鼠标中键。当链接包含Javascript函数时,可以:

  • 将打开一个空白的新标签页,其中包含javascript:window.print()或您在地址栏中的内容。
  • 该功能成功执行将打开一个空白的新标签页。

事实上,对于所有Javascript函数,这似乎并不一致。例如:

  1. 点击CTRL时this page上的“打印”按钮会打开打印对话框并生成一个空的新标签页。
  2. this page上的白皮书链接,当点击CTRL时,只会生成一个空的新标签。
  3. 相关链接分别包含以下代码:

    1. javascript:window.print();
    2. javascript:_hbRedirect('PDF Downloads','White Paper','URL.pdf','&c1=TITLE|US-en')
    3. This SO question有点类似。评价最高的答案详细介绍了一个基于AJAX的解决方案,但是我无法找到解释为什么某些Javascript函数与标签的行为不同的原因。

2 个答案:

答案 0 :(得分:1)

JavaScript不应与XHTML混合使用。让链接的href属性只是您要链接到的页面或文档。如果您想对标签做一些特殊的事情,请使用事件注册。

A la MooTools:

a.addEvent ('click', function (e) {

});

答案 1 :(得分:1)

这是因为window.print()已经默认定义,所以它被正常调用。

javascript:_hbRedirect('PDF Downloads','White Paper','URL.pdf','&c1=TITLE|US-en')链接调用未定义的函数,因此没有任何反应。