我创建了下面的函数来识别onclick事件,该事件随每次页面加载动态生成。我可以将onclick事件转换为变量(开发人员控制台输出如下所示)。我想执行该onclick事件,但是找不到执行此操作的好方法。感谢您的协助。
“ƒonclick(事件){ mstrmojo.dom.captureDomEvent('* lK1129 * kWA92AF1C396244F28902B3171F9642E57 * x1 * t1530820506700','click',self,event) }“
function applyAll() {
//Get the self Link to click it
var linkBys = document.getElementsByClassName("mstrmojo-DocTextfield-valueNode");
// loop through each result
for(y = 0;y < linkBys.length;y++){
// retrieve the current result from the variable
var linkBy = linkBys[y];
// check the condition that tells me this is the one I'm looking for
if(linkBy.innerText.indexOf("link") !== -1){
// Find the right class
var idy = document.getElementsByClassName("mstrmojo-DocTextfield-valueNode")[y].onclick;
console.log(idy);
}
}
}
答案 0 :(得分:1)
如果将属性“ onclick”定义为函数,则可以将其作为函数运行。
var idy = document.getElementsByClassName("")[y].onclick();
您还可以用另一种方式处理它:
var idy = document.getElementsByClassName("")[y].onclick;
idy();
答案 1 :(得分:0)
onclick
不是事件,它是单击元素时执行的功能。如果要模拟点击,可以执行element.click()
答案 2 :(得分:0)
如果您使用过:
element.addEventListener('click',()=>...);
代替:
element.onclick=()=>...
然后您要做的就是:
document.getElementsByClassName("mstrmojo-DocTextfield-valueNode")[y].dispatchEvent(new Event('click'));
答案 3 :(得分:0)
您可以调用返回的函数,并添加括号:
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function foo() {
var idy = document.getElementsByClassName("mstrmojo-DocTextfield-valueNode")[0].onclick;
console.log(idy);
idy();//like so
}
function alertMe() {
alert('Hello');
}
</script>
</head>
<body>
<button id="btn" class="mstrmojo-DocTextfield-valueNode" onclick="alertMe();">No click</button>
<button id="btn2" onclick="foo()">Click me</button>
</body>
</html>