这让我很难过,我尝试了很多不同的东西,但我无法让它发挥作用。 有人可以帮忙吗?无论我尝试什么,我都无法触发链接上的click eventlistener。代码在一个greasemonkey脚本中。我相信我必须使用closure方法来引用greasemonkey脚本中的函数dropit,因为它不能用于页面上的代码。
dropit = function (e) {
e.preventDefault();
alert(e.target.textContent);
}
document.getElementById('newlink').addEventListener('click',
function (e){
return function (){
dropit(e);
}
}(),false);
答案 0 :(得分:2)
您必须将Greasemonkey脚本将代码写入页面中的新<script>
标记。完成后,您的页内事件处理程序设置可以正常进行。至少,这是我所知道的唯一方法。
答案 1 :(得分:0)
e
传递给addEventListener中的第二个函数,而不是第一个。
像这样:
dropit = function (e) {
e.preventDefault();
alert(e.target.textContent);
}
document.getElementById('newlink').addEventListener('click',
function (e){
return function (e){
dropit(e);
}
}(e),false);
答案 2 :(得分:0)
<a id='mylink' href='http://www.google.com'>google</a> the link
<script src="http://yui.yahooapis.com/3.0.0/build/yui/yui-min.js"></script>
<script>
YUI().use('event', function(Y){
Y.one('#mylink').on('click', function(e){
e.halt();
alert(this.get('href'));
});
});
</script>
答案 3 :(得分:0)
这里是非YUI版本
<a id='mylink' href='#'>google</a> the link
<script>
(function(){
var dropit = function (e) {
e.preventDefault();
alert(e.target.textContent);
}
document.getElementById('mylink').addEventListener('click', dropit, false);
}());
</script>