我一直在努力工作几个小时,但我无法做到这一点。我编写了一个内容脚本,在用户加载页面时执行。当我尝试点击一个元素时,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");
}
}
当我加载页面时,控制台日志显示它已设法进入
但网站上没有任何实际点击。当我在控制台中测试click方法时,以下两个解决方案都可以工作:
此外,我看到相同的控制台日志 - 从控制台执行click方法时 - 但这样它实际上正在工作。
有谁知道这是什么问题? :/
答案 0 :(得分:0)
我遇到了这个问题。就我而言,我意识到存在HTML DOM和脚本加载同步。因此,当您调用click事件时,它仍然已完成加载。因此,我将调用click事件的脚本添加到了{ address: '0x39b6E041EDeDfE832DD655B50deF99f182031C8E',
privateKey:
'72c8afc650bc8012ed92ba9f4c452f852cb86036f46ddd6668952d81e95be140',
signTransaction: [Function: signTransaction],
sign: [Function: sign],
encrypt: [Function: encrypt] }
中,并且可以正常工作。
我的脚本如下:
window.load