我正在寻找一种通过 href 加载函数的解决方案。 href=javascript:myFunction()
不起作用。
我无法使用 onClick 或 eventListener 的原因是因为我希望鼠标中键打开我将从新选项卡中的函数获得的链接。
我无法直接放置最终链接,因为我需要先收集链接,并且我只想在使用 href 时才这样做。
这可能吗?
PS:这是关于篡改/Greasemonkey 脚本
最佳答案
不知道为什么你不能让它工作,这工作正常。
只需确保您的函数是在元素之前定义的。在你的<head>
例如。
HTML
<a href="javascript:test();">Test</a>
JS
function test() {
alert("executed");
return false;
}
如果你仅限于在 dom 准备好 Greasemonkey 之后,这里有一个你可以使用的解决方法。您仍然需要能够在元素之前定义一些内容,但不能在方法之前定义一些内容。
基本上,如果您在元素之前创建一个 namespace ,则可以在加载文档后向该 namespace 添加方法,并且该元素仍然可以工作。
HTML
<a href="javascript:test.foo();">Test</a>
JS
// jsfiddle load this in the head
var test = {};
// jquery used to run on dom ready
$(function() {
// add the method use by the element
test.foo = function() {
alert("executed");
return false;
}
});
关于javascript - 使用 href 执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24804623/