Javascript执行onclick事件,存储在变量中

时间:2018-07-05 20:09:09

标签: javascript

我创建了下面的函数来识别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);   

      }
     }

}

4 个答案:

答案 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>