Firefox链接到javascript函数在不打算时打开一个新窗口

时间:2010-08-15 14:30:07

标签: javascript html firefox hyperlink href

我遇到这个问题,当我在Firefox中使用这个html时会打开一个新窗口

<a style="float:right;" 
href='javascript:window.location.href="#";'onClick="javascript:addNewRecord();">
New Record</a>

我尝试过self.location,window.location,#body和#h1作为href。

最初我有代码,但在firefox中没有做任何事情,只是打开一个新窗口,而不是执行我的功能。该代码在chrome中非常完美。

<a style="float:right;" href="javascript:addNewRecord();">New Record</a>

4 个答案:

答案 0 :(得分:10)

规范的内联方式是

<a style="float:right;" href="#"
onClick="addNewRecord(); return false">New Record</a>

或更好:

<a style="float:right;" href="#"
onClick="return addNewRecord()">New Record</a>

其中addNewRecord在函数末尾返回false


更好的方法是

window.onload=function() {
  document.getElementById("addLink").onclick=addNewRecord;
}
function addNewRecord() {
  ...
  return false;
}

<style>
#addLink { float:right }
</style>

<a href="#" id="addLink">New Record</a>

由于在链接上滥用HREF只是为了得到一个指针是不受欢迎的,你可以考虑<span>带有onclick和cursor:指针。它确实需要更多的努力来使这样的元素可以被例如屏幕阅读器访问。

答案 1 :(得分:4)

尝试:

onClick="addNewRecord();return false"

答案 2 :(得分:3)

您的代码行为如何完全取决于addNewRecord()函数的作用(包括它返回的内容)。

没有看到内部的这个功能很难说,但我会说发生的事情就在那里。

请注意,您在href =“”部分中放置的内容可能不会影响您所看到的行为。

答案 3 :(得分:0)

试试这个

<a onclick="javascript:addNewRecord();">New Record</a>