内联javascript firefox错误?

内联javascript firefox错误?,javascript,css,firefox,inline,Javascript,Css,Firefox,Inline,有人知道为什么当我在脚本中运行这段代码时,它会将我带到一个只显示none的页面吗?这似乎只发生在Firefox上 <a href="javascript:document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none';">CLOSE</a> 试试这个 <a href=" javascript:documen

有人知道为什么当我在脚本中运行这段代码时,它会将我带到一个只显示none的页面吗?这似乎只发生在Firefox上

<a href="javascript:document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none';">CLOSE</a>

试试这个

<a href="
    javascript:document.getElementById('light')
    .style.display='none';document.getElementById('fade')
    .style.display='none';return false;">CLOSE</a>


然而,现在内联JS是一种反模式,我建议将此逻辑移到JS文件中,并为此链接提供一个类或其他东西,允许您连接到它并添加一个事件侦听器,以便在JavaScript中单击指定返回指定的值。Firefox正在评估您所有的JavaScript,并且看到最后发生的事情是返回“none”的语句;然后,它使窗口的位置,因为这是链接的href属性应该做的。(无论如何,有点像。)

您可能希望使用锚标记的onclick属性而不是href,并在末尾添加一个“return false”,这样就不会出现单击链接的默认操作(导航到href)

<a onclick="document.getElementById('light').style.display='none';
            document.getElementById('fade').style.display='none';
            return false;">CLOSE</a>
关闭

当然,更好的办法是为此定义一个函数。=)

请参阅和我的答案。

我的方法如下:

<a href="javascript:void(0);" onclick="document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none';" >CLOSE</a>


而且在大多数web浏览器上都可以正常工作

这项工作的唯一原因是
返回false
抛出异常,从而终止脚本并防止其具有返回值。所以它“起作用”,但它并不是最好的解决方案……它不会“抛出异常”,它只是停止处理锚上的点击事件,是的,这种方法有一些错误,但它是让OP的解决方案起作用的阻力最小的途径。