以下是构建链接的两种方法,其唯一目的是运行JavaScript代码.哪个更好,在功能,页面加载速度,验证目的等方面?
function myJsFunc() {
alert("myJsFunc");
}Run Code Online (Sandbox Code Playgroud)
<a href="#" onclick="myJsFunc();">Run JavaScript Code</a>Run Code Online (Sandbox Code Playgroud)
要么
function myJsFunc() {
alert("myJsFunc");
}Run Code Online (Sandbox Code Playgroud)
<a href="javascript:void(0)" onclick="myJsFunc();">Run JavaScript Code</a>Run Code Online (Sandbox Code Playgroud)
我有一个锚都 HREF和ONCLICK属性进行设置.如果单击并启用Javascript,我希望它只执行ONCLICK并忽略HREF.同样,如果Javascript被禁用或不受支持,我希望它遵循HREFURL并忽略ONCLICK.下面是我正在做的一个例子,它将执行JS并同时跟踪链接(通常执行JS然后页面更改):
<A HREF="http://example.com/no-js-login" ONCLICK="yes_js_login()">Log in</A>
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
我希望得到一个Javascript答案,但我会接受任何方法,只要它有效,特别是如果这可以用PHP完成.我已经读过" 一个href链接执行并在javascript onclick函数能够完成之前重定向页面 ",但它只是延迟HREF,但并没有完全禁用它.我也在寻找更简单的东西.
由于 Blazor 3.1 Preview 2 应该可以防止Blazor 中链接的默认导航行为,如本答案中所述。
但是,这段代码:
<NavLink href="" Match="Match" @onclick:preventDefault @onclick="()=>LinkAction()" >
Do something
</NavLink>
Run Code Online (Sandbox Code Playgroud)
给出这个错误:
组件参数 'onclick' 用于该组件两次或多次。参数必须唯一(不区分大小写)
这是为什么?
href ×2
html ×2
javascript ×2
anchor ×1
blazor ×1
c# ×1
onclick ×1
optimization ×1
performance ×1