如何在iframe中创建MouseEvents?

新手上路,请多包涵

目前需要模拟鼠标根据坐标点击,但是点击对象在iframe中,触发不了,写了一个好像不太对

function clickXY(x, y) {
            setTimeout((x, y) => {
                const iframe = document.getElementById('frame_9537a06c653241a6b4783cf11bdf6f14');
                const iframeDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
                const event = iframeDoc.createEvent("MouseEvents");
                event.initEvent("click", true, true);
                iframeDoc.elementFromPoint(x, y).dispatchEvent(event);
            }, 1000, x, y);
        }
阅读 1.8k
2 个回答

window.frames["iframeName"].document.getElementById("frame_9537a06c653241a6b4783cf11bdf6f14");

新手上路,请多包涵

自问自答,google到了一个办法
function clickXY(x, y) {

        setTimeout((x, y) => {
            const iframe = document.getElementById('frame_9537a06c653241a6b4783cf11bdf6f14');
            const iframeDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
            const canvasDom = iframeDoc.getElementById("canvas");
            const event = new MouseEvent("mouseup", {clientX: x, clientY: y, bubbles: true});
            canvasDom.dispatchEvent(event);
        }, 1000, x, y);
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题