0

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

  • 一个空白的新标签会在地址栏中打开,javascript:window.print()或者你有什么。
  • 该函数成功执行打开一个空白的新选项卡。

问题是,对于所有 Javascript 函数,这似乎并没有始终如一地发生。例如:

  1. 此页面上的“打印”按钮,当按住 CTRL 键单击时,会打开一个打印对话框并生成一个空的新选项卡。
  2. 此页面上的白皮书链接,当按住 CTRL 键单击时,只会生成一个空的新选项卡。

有问题的链接分别包含以下代码:

  1. javascript:window.print();
  2. javascript:_hbRedirect('PDF Downloads','White Paper','URL.pdf','&c1=TITLE|US-en')

这个 SO question有点相似。评价最高的答案详细介绍了基于 AJAX 的解决方案,但我无法解释为什么某些 Javascript 函数在选项卡上的行为与其他函数不同。

4

2 回答 2

1

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

阿拉MooTools:

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

});
于 2009-08-07T20:25:36.677 回答
1

发生这种情况是因为window.print()默认情况下已经定义了它,所以它被正常调用。

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

于 2009-08-09T05:44:35.263 回答