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


86

我有一些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中加载的函数,而不是尝试在浏览器中打开它们。


Stackoverflow本身也回答了类似的问题。stackoverflow.com/questions/1070760/...
Scaria塞巴斯蒂安

Answers:


192

该语法应该可以正常运行,但是您可以尝试这种替代方法。

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

要么

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

有关字符串值的更新的答案

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

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

如何在参数中传递转义双引号的字符串?H =该示例仅具有整数。
jeffry copps 18-4-7的

1
@jeffrycopps尝试在函数中使用单引号
ineedme '19

@ineedme答案使用该信息进行了更新。谢谢。
Dutchie432 '19

9

如果仅具有“单击事件处理程序”,则使用a <button>。链接具有特定的语义。

例如:

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

有什么方法可以使按钮看起来像链接而不是按钮?
本·佩奇

@Ben Page:是的,使用CSS。至少您得到一个很好的近似值。见我的回答和评论在这里:stackoverflow.com/questions/4842953/or-javascriptvoid0/...
费利克斯·克林

7

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

  • 您应该在href属性中使用真实链接
  • 并在click事件上添加侦听器以处理ajax

href是可选的,只需忽略它。
科林·哈特

标签是锚。它不需要链接。
科林·哈特

5

我在跨度上使用了一些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");
}

上面的'url'函数参数给了我字符串“ url”而不是实际的URL
visrahane,

您应该将实际的URL放入showWindow函数中。例如:javascript:showWindow(' stackoverflow.com');
tolsen64 '18

我无法使用dom对其进行硬编码,并且无法控制网址
visrahane,

3

您还应该将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是可选的,只需忽略它。
科林·哈特


1

href对于a元素是可选的。

使用就足够了

<a onclick="ShowOld(2367,146986,2)">link text</a>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.