Javascript jquery自动点击到基础元素
我不知道这是否可能 但我想在外部站点的元素上自动clic 要求通过点击下一页完成所有章节,完成在线培训。培训只需要浏览大量的章节。由于我无法访问该网站的代码 所以我把这个站点放在一个iframe中,在可点击的元素区域上放置一个透明的div 指针事件:无 我还可以通过以下方式实现自动单击我的div元素Javascript jquery自动点击到基础元素,javascript,jquery,click-through,Javascript,Jquery,Click Through,我不知道这是否可能 但我想在外部站点的元素上自动clic 要求通过点击下一页完成所有章节,完成在线培训。培训只需要浏览大量的章节。由于我无法访问该网站的代码 所以我把这个站点放在一个iframe中,在可点击的元素区域上放置一个透明的div 指针事件:无 我还可以通过以下方式实现自动单击我的div元素 var time=5; interval = setInterval(function() { time--; document.getElementById('Label1').i
var time=5;
interval = setInterval(function() {
time--;
document.getElementById('Label1').innerHTML = "" + time + " seconds"
if (time == 0) {
// stop timer
clearInterval(interval);
// click
document.getElementById('clickdiv').click();
}
}, 1000)
但挑战在于点击一个底层元素。我可以用鼠标或键盘来做。但是click()函数似乎只对上面的div起作用。问题是,为什么下面的div不能像鼠标或键盘那样起作用
HTML
如果您无法访问外部站点的代码,则无法执行此操作。如果是这样的话,请停在这里:-) 虽然您不能像这样单击iFrame,但可以使用
postMessage
向其发送命令
基本上你需要这样称呼它:yourIframe.postMessage(“message”,payload)代码>
并在iFrame源中这样处理它:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
if (event.origin !== "http://example.org:8080")
return;
// ...
}
用一个简单的网页是做不到这一点的。您可以使用浏览器扩展来完成此操作。(根据你的描述,听起来你不应该这么做,但是…@t.J.Crowder我一直在尝试Chromium浏览器自动化和Firefox Selenium…但无法真正实现我想要的。我只是在尝试一个无害的项目来完成一个庞大的培训大纲:)你能告诉我如何把它打包成脚本吗?这样我就可以试一下了。这基本上就是你所需要的。在receiveMessage中,您需要执行逻辑。我想,如果没有访问iframe源代码,那么它对我的purpose@Amateur如果没有访问权限,你就做不到
#clickdiv{width:50px;height:20px;border:1px solid green;position:absolute;top:57%;left:10%;z-index:100;pointer-events:none;background-color:red;color:white}
#Label1{width:50px;height:20px;border:1px solid green;position:absolute;top:77%;left:10%;z-index:100;}
#Label2{color:red;width:50px;height:20px;position:absolute;top:87%;left:10%;z-index:100;}
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
if (event.origin !== "http://example.org:8080")
return;
// ...
}