Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过动态单击某些坐标,在iFrame上单击_Javascript_Jquery_Iframe_Coordinates - Fatal编程技术网

Javascript 通过动态单击某些坐标,在iFrame上单击

Javascript 通过动态单击某些坐标,在iFrame上单击,javascript,jquery,iframe,coordinates,Javascript,Jquery,Iframe,Coordinates,我试图通过动态单击某些坐标来单击iframe,其中有一个按钮。我创建了一个按钮,它可以通过鼠标点击按钮所在的坐标,但它不起作用 在这个示例中,我在bing徽标所在文档的x=30px和y=30px坐标上单击了按钮,但当我单击按钮时,iframe中的bing徽标不会触发 <div class="button">Click Here</div> <iframe src="https://www.bing.com/images" width="200" height="70

我试图通过动态单击某些坐标来单击iframe,其中有一个按钮。我创建了一个按钮,它可以通过鼠标点击按钮所在的坐标,但它不起作用

在这个示例中,我在bing徽标所在文档的x=30px和y=30px坐标上单击了按钮,但当我单击按钮时,iframe中的bing徽标不会触发

<div class="button">Click Here</div>
<iframe src="https://www.bing.com/images" width="200" height="70"></iframe>



<script>
          function clicktransfer(x, y) {
                jQuery(document.elementFromPoint(x, y)).click();
            }

            $( ".gray" ).click(function() {
            clicktransfer(30, 30);
            });
</script>
点击这里
功能点击传输(x,y){
jQuery(document.elementFromPoint(x,y)).click();
}
$(“.gray”)。单击(函数(){
点击传输(30,30);
});


有什么想法吗?

您的脚本已访问主文档。iframe中的文档是一个单独的文档,具有自己的DOM结构。 您可以这样访问它:

var doc = $('iframe')[0].contentWindow.document;

但有跨域限制。换句话说,您无法访问iframe中具有不同来源的文档。

类似问题:请解释我做错了什么部分,我阅读了这篇(跨域)文章,但没有帮助。是否有解决方法?不访问其他文档,但至少要更改单击方式,使其影响其背后的任何内容,iframe或任何内容…您可以在web服务器端放置代理脚本。例如,iframe中的URL如下:“/proxy.php?URL=https%3A%2F%2Fwww.bing.com%2Fimages”。因此,浏览器会在URL中看到相同的域,并允许访问iframe下的文档。但这种方法有一个缺点:外部文档中的所有相对URL都将被破坏。绝对URL不会使用您的代理。您可以通过修改文档中所有和元素中的URL(通过代理脚本或主页上的javascript)来解决此问题。但我不知道如何在不进行深入代码分析的情况下拦截document.location change和window.open等javascript调用。