Chrome扩展程序内容脚本 - .click()无效

时间:2017-04-09 21:37:27

标签: javascript jquery google-chrome-extension

我一直在努力工作几个小时,但我无法做到这一点。我编写了一个内容脚本,在用户加载页面时执行。当我尝试点击一个元素时,click()方法就不起作用了。我尝试过多种方式,它总是在控制台上运行,但在我加载页面时却没有。

我要点击的元素:

<a id="startButton" href="javascript: popupHand.showPopup('popupLoginV2','loginHand.init()','','',true);" class="buttonGreen1 buttonSize1">Megpörgetem</a>

manifest.json - 内容脚本部分

{
  "content_scripts": [
    {
      "matches": ["*://*.bonuszbrigad.hu/bonuszkerek"],
      "js": ["plugin/jquery-3.2.0.min.js", "js/page_wheel.js"],
      "run_at": "document_end"
    }
  ],
}  

page_wheel.js

function spinWheel() {
    var spinButton = $("#startButton");

    if (spinButton.text() === "Már pörgettél") {
        return "wait";
    }

    else if (spinButton.text() === "Megpörgetem") {
        console.log("spin is available");

        spinButton.on("click",
            function () {
                console.log("inside click action");

                var popupLogin = $("#popup_login");
                console.log(popupLogin);

                if (popupLogin === null) {
                    return "login"
                } else {
                    return "success";
                }
            }
        );

        spinButton.trigger("click");
    }
}

当我加载页面时,控制台日志显示它已设法进入

  • spinButton.on(“click”,function(){...});

但网站上没有任何实际点击。当我在控制台中测试click方法时,以下两个解决方案都可以工作:

  • $( “#startButton”)。点击()
  • 的document.getElementById( “startButton”)点击();

此外,我看到相同的控制台日志 - 从控制台执行click方法时 - 但这样它实际上正在工作。

有谁知道这是什么问题? :/

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题。就我而言,我意识到存在HTML DOM和脚本加载同步。因此,当您调用click事件时,它仍然已完成加载。因此,我将调用click事件的脚本添加到了{ address: '0x39b6E041EDeDfE832DD655B50deF99f182031C8E', privateKey: '72c8afc650bc8012ed92ba9f4c452f852cb86036f46ddd6668952d81e95be140', signTransaction: [Function: signTransaction], sign: [Function: sign], encrypt: [Function: encrypt] } 中,并且可以正常工作。

我的脚本如下:

window.load