javascript - jquery 自动点击底层元素

标签 javascript jquery click-through

<分区>

我什至不知道这是否可能!

但我想自动点击外部站点上的元素。

要求是通过单击下一页完成所有章节来完成在线培训。培训只需要访问大量的章节。由于我无权访问该站点的代码,

所以我将网站放入 iframe 并使用

在可点击元素区域放置一个透明的 div

pointer-events:none

我还可以使用

实现对我的 div 元素的自动点击
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 有效。问题是,为什么不像鼠标或键盘那样的底层可以做到

HTML

<div>
    <input type='submit' id='clickdiv' value='Autoclick' onclick="document.getElementById('Label2').innerHTML = 'Clicked!'">
    <p id='Label1'> Time </p>
    <p id='Label2'> </p>
    <div style='position:relative;z-index:0'><iframe src='http://www.the-xtsernal-site.com' style='width:100%;height:100%;z-index:0'></iframe></div>
</div>

CSS

#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;}

最佳答案

如果您无权访问外部站点的代码,则无法执行此操作。如果是这种情况,请到此为止:-)。

虽然您不能像这样点击进入 iFrame,但是您可以使用 postMessage 向它发送命令。

基本上您需要这样调用它:yourIframe.postMessage("message", payload);

并在 iFrame 源代码中这样处理:

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event)
{
    if (event.origin !== "http://example.org:8080")
    return;

 // ...
}

关于javascript - jquery 自动点击底层元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53030245/

相关文章:

javascript - 如何使用 Node.js Express 强制 nginx proxy_next_upstream?

javascript - 使用 onblur 和 onchange 进行实时更新

javascript - 单击带有 flash 的 iframe

objective-c - 如何使按钮在点击时不触发其操作?

javascript - 在 JSP 页面上显示 Javascript 获取的列表值

javascript - 如果日期匹配,则将数组对象过滤为其他数组对象

javascript - 引导箱验证

javascript - 如何从 jquery hover 中排除第一列

javascript - 让 iframe 点击,但不是 iframe 的主体

javascript - Angular 响应式(Reactive)表单值不由第三方服务填充