繁体   English   中英

如何在 HTML 中调用 JavaScript 函数而不是 href

[英]How to call JavaScript function instead of href in HTML

我有一些 HTML 模型

<a href="javascript:ShowOld(2367,146986,2)"><img title="next page" alt="next page" src="/themes/me/img/arrn.png"></a>

当我发送请求时,我得到了服务器的响应。

有了这个模型,我得到了 AJAX 请求的响应,该请求将我的代码发送到服务器。

好吧,一切都很好,但是当我点击链接时,浏览器想要打开该功能作为链接; 意思是点击后我看到地址栏为

javascript:ShowOld(2367,146986,2)

如果我想在工作的萤火虫中执行此操作,则表示浏览器的内容是 url。 现在我想这样做,然后当有人单击链接时,浏览器会尝试调用已加载到 DOM 中的函数,而不是尝试在浏览器中打开它们。

该语法应该可以正常工作,但您可以尝试这种替代方法。

<a href="javascript:void(0);" onclick="ShowOld(2367,146986,2);">

或者

<a href="javascript:ShowOld(2367, 146986, 2);">

字符串值的更新答案

如果要传递字符串,请对函数的参数使用单引号

<a href="javascript:ShowOld('foo', 146986, 'bar');">

如果您只有“单击事件处理程序”,请改用<button> 链接具有特定的语义含义。

例如:

<button onclick="ShowOld(2367,146986,2)">
    <img title="next page" alt="next page" src="/themes/me/img/arrn.png">
</button>

尽量让你的 javascript 不显眼:

  • 您应该在 href 属性中使用真实链接
  • 并在点击事件上添加一个监听器来处理ajax

我在 span 上使用了一点 CSS 使其看起来像这样的链接:

CSS:

.link {
    color:blue;
    text-decoration:underline;
    cursor:pointer;
}

HTML:

<span class="link" onclick="javascript:showWindow('url');">Click Me</span>

爪哇脚本:

function showWindow(url) {
    window.open(url, "_blank", "directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes");
}

<a href="#" onclick="javascript:ShowOld(2367,146986,2)">

您还应该将 javascript 与 HTML 分开。
HTML:

<a href="#" id="function-click"><img title="next page" alt="next page" src="/themes/me/img/arrn.png"></a>

javascript:

myLink = document.getElementById('function-click');
myLink.onclick = ShowOld(2367,146986,2);

只需确保 ShowOld 函数的最后一行是:

return false;

因为这将阻止链接在浏览器中打开。

href对于a元素是可选a

使用就完全够了

<a onclick="ShowOld(2367,146986,2)">link text</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM