以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
以下是构建链接的两种方法,该链接的唯一目的是运行JavaScript代码。在功能、页面加载速度、验证目的等方面,哪个更好。?
函数myJsFunc(){警报(“myJsFunc”);}<a href=“#”onclick=“myJsFunc();”>运行JavaScript代码</a>
or
函数myJsFunc(){警报(“myJsFunc”);}运行javascript代码</a>
当前回答
我从你的话中了解到,你想要创建一个链接来运行JavaScript代码。
然后你应该考虑到有人在浏览器中阻止JavaScript。
因此,如果你真的要将该链接仅用于运行JavaScript函数,那么你应该动态添加它,这样即使用户没有在浏览器中启用JavaScript,也不会看到它,而你使用该链接只是为了触发一个JavaScript函数,在浏览器中禁用JavaScript时,使用这样的链接是没有意义的。
由于这个原因,当JavaScript被禁用时,它们都不好。
a如果启用了JavaScript,并且您只想使用该链接调用JavaScript函数,则
<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
比使用
<a href="#" onclick="myJsFunc();">Link</a>
因为href=“#”将导致页面执行不需要的操作。
此外,<a href=“javascript:void(0)”onclick=“myJsFunc();”>Link</a>优于<a href=”#“onclick=“myJsFunc(;)”>Link//a>的另一个原因是javascript被用作大多数浏览器的默认脚本语言。例如,InternetExplorer使用onclick属性来定义要使用的脚本语言类型。除非出现另一种好的脚本语言,否则Internet Explorer也会使用JavaScript作为默认语言,但如果另一种脚本语言使用JavaScript:,则会让Internet Explorer了解正在使用的脚本语言。
考虑到这一点,我更喜欢使用和锻炼
<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
为了让它成为一种习惯,为了更方便用户,请在JavaScript代码中添加此类链接:
$(document).ready(function(){
$(".blabla").append('<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>')
});
其他回答
我会使用:
<a href="#" onclick="myJsFunc();return false;">Link</a>
原因:
这使得href变得简单,搜索引擎需要它。如果您使用其他任何东西(例如字符串),它可能会导致404未找到错误。当鼠标悬停在链接上时,它不会显示它是一个脚本。通过使用return false;,页面不会跳到顶部或断开后退按钮。
这里实际上有四种选择。
使用return false;允许您保留锚版本,以防在禁用JavaScript的浏览器中出现安全的“回退”,或者用户代理不支持(现在用户的1-5%)。如果脚本失败,可以使用锚定符“#”、空字符串或href的特殊URL。请注意,您必须使用href,以便屏幕读者知道它是一个超链接。(注意:我不会讨论删除href属性的问题,因为这一点在这里没有意义。锚上没有href意味着锚不再是一个超链接,而只是一个html标记,上面有一个被捕获的点击事件。)
<a href="" onclick="alert('hello world!');return false;">My Link</a>
<a href="#" onclick="alert('hello world!');return false;">My Link</a>
<a href="MyFallbackURL.html" onclick="alert('hello world!');return false;">My Link</a>
下面是目前在href属性中使用javascript:void(0)的更流行的设计。如果浏览器不支持脚本,则应再次将其发布回页面,因为href超链接路径返回了一个空字符串。如果您不关心谁支持JavaScript,请使用此选项。
<a href="javascript:void(0);" onclick="alert('hello world!');">My Link</a>
理想情况下,您应该这样做:
<a href="javascriptlessDestination.html" onclick="myJSFunc(); return false;">Link text</a>
或者,更好的是,您可以在HTML中使用默认的操作链接,并且在DOM渲染后通过JavaScript将onclick事件不显眼地添加到元素中,从而确保如果JavaScript不存在/未被利用,您不会有无用的事件处理程序来处理代码,并可能混淆(或至少分散您的注意力)实际内容。
如果你问我,也不会;
如果您的“链接”仅用于运行某些JavaScript代码,则它不符合链接的资格;我建议使用带有onclick处理程序的<span>标记和一些基本CSS来模拟链接。链接是用于导航的,如果您的JavaScript代码不是用于导航,那么它不应该是一个<a>标记。
例子:
函数callFunction(){console.log(“函数调用”);}.js操作{光标:指针;颜色:#00f;文本装饰:下划线;}<p>我想在这里调用JavaScript函数</p>
我选择使用javascript:void(0),因为使用它可能会阻止右键单击打开内容菜单。但是javascript:;更短,做同样的事情。