我想在没有任何重定向的情况下运行一个简单的JavaScript函数。
把JavaScript调用放在href属性中(像这样)有什么区别或好处吗?
<a href="javascript:my_function();window.print();">....</a>
与把它放在onclick属性(绑定到onclick事件)?
我想在没有任何重定向的情况下运行一个简单的JavaScript函数。
把JavaScript调用放在href属性中(像这样)有什么区别或好处吗?
<a href="javascript:my_function();window.print();">....</a>
与把它放在onclick属性(绑定到onclick事件)?
当前回答
我用了下面这行代码:
<a id="LinkTest" title="Any Title" href="#" onclick="Function(); return false; ">text</a>
其他回答
除此之外,href会显示在浏览器的状态栏上,而onclick则不会。我认为在那里显示javascript代码对用户不友好。
我经历过javascript: hrefs不能工作时,页面嵌入到Outlook的网页功能,其中一个邮件文件夹被设置为显示url
就我个人而言,我觉得把javascript调用放在HREF标签中很烦人。我通常不太注意某些东西是不是javascript链接,而且经常想在一个新窗口中打开东西。当我尝试这样做与这些类型的链接之一,我得到一个空白页面上什么都没有和javascript在我的位置栏。但是,通过使用onlick可以避免这一点。
将onclick放在href中会冒犯那些坚信内容与行为/动作分离的人。争论的焦点是你的html内容应该只关注内容,而不是表现形式或行为。
现在的典型路径是使用javascript库(例如。Jquery),并使用该库创建一个事件处理程序。它看起来像这样:
$('a').click( function(e) {e.preventDefault(); /*your_code_here;*/ return false; } );
在任何不是专门用于脚本的属性中使用javascript:都是一种过时的HTML方法。虽然从技术上讲它是可行的,但您仍然将javascript属性分配给非脚本属性,这不是一个好的实践。它甚至可以在旧的浏览器上失败,甚至在一些现代的浏览器上(一个谷歌论坛的帖子似乎表明Opera不喜欢'javascript:' url)。
更好的做法是第二种方式,将javascript放到onclick属性中,如果没有可用的脚本功能,则忽略该属性。在href字段中放置一个有效的URL(通常是'#'),以供那些没有javascript的人使用。