我正在为gmail编写一个greasemonkey脚本,我需要复制“收件箱”链接。使用cloneNode工作正常,但我认为有一个onclick事件在运行时附加到它。所以,这是一个两部分问题: 1.有没有办法查看哪些事件附加到节点? 2.有没有办法复制这些事件? 我发现最接近的是jQuery,我还没准备好去那里。 谢谢!
答案 0 :(得分:5)
onclick
属性进行设置。onclick
属性,但这是否会继续有效取决于它是否被使用以及它的用途。)最好添加自己的click
处理程序,然后在原始事件上触发该事件......或以其他方式模拟行为。
答案 1 :(得分:0)
我认为我们可以使用这个理论来解决这个问题:
我们在JS中有NodeList,也称为liveLists。我们可以检查它们的长度是否发生变化,将所需的公共事件添加到列表中的新元素(length-1)。
说什么......
答案 2 :(得分:0)
以下是使用Nodelist添加事件的示例。
<body>
<div id="one" class="clones" style="background:red;width:100px;height:100px"></div>
</body>
<script>
//Selecor based live list [Advantage]
var nodeList = document.getElementsByClassName('clones')
//Common Function for nodelist
nodeList.addEvents = function(){
nodeList.item(nodeList.length-1).addEventListener('click',function(){
console.log(this.id);
});
}
nodeList.addEvents();
//Making Clone
var _clone = document.getElementsByTagName('div')[0].cloneNode(true);
//Changing Id
_clone.id="two"
document.body.appendChild(_clone);
nodeList.addEvents();
</script>