问题描述

我有一些 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,如果我想在 firebug 这样做的工作。现在我想这样做,然后当有人点击链接,然后浏览器尝试调用已经加载在 DOM 中的功能,而不是试图在浏览器中打开它们。

最佳解决方案

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

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

要么

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

次佳解决方案

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

例如。:

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

第三种解决方案

尝试使您的 JavaScript 不引人注意:

  • 你应该在 href 属性中使用一个真正的链接

  • 并在 click 事件上添加一个监听器来处理 ajax

第四种方案

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;

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

第六种方案

我在一个跨度上使用一点 CSS 使其看起来像一个这样的链接:

CSS:

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

HTML:

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

JAVASCRIPT:

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

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛