Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 jquery获取iframe中元素的偏移量()_Javascript_Jquery_Iframe - Fatal编程技术网

Javascript jquery获取iframe中元素的偏移量()

Javascript jquery获取iframe中元素的偏移量(),javascript,jquery,iframe,Javascript,Jquery,Iframe,我需要获取submit按钮的偏移量信息,该按钮深埋在div中的iframe中。我想在iframe加载后定位另一个与submit按钮相邻的元素。iframe从与包含页面相同的原点加载 <div id="editBox"> <iframe id="ifr" src="mysource"> <html> <head></head> <body> <f

我需要获取submit按钮的偏移量信息,该按钮深埋在div中的iframe中。我想在iframe加载后定位另一个与submit按钮相邻的元素。iframe从与包含页面相同的原点加载

<div id="editBox">
  <iframe id="ifr" src="mysource">
      <html>
        <head></head>
          <body>
            <form id="dataForm" enctype="" method="POST" action="">
              <div>
                <table>  some form elements </table>
                <button id="submitButton" onclick="" type="submit">Save to file</button>

但两者都返回未定义的值

我还将.contents语句包装在setTimeout中,以确定问题是否在于我在加载iframe之前进行了检查。(如果这样做有效的话,我会添加一个已加载的事件处理程序),但没有任何更改,结果仍然未定义


如何获取所需的位置信息?

将代码包装在iframe的
load()函数中。其工作原理与文档准备功能或窗口加载功能类似:

$("#ifr").on("load", function(){
    var offset = $(this).contents().find('#submitButton').offset();
});

如果iFrame来自另一个来源,并且没有明确授予您的来源权限来访问iThanks Izzey,那么这是不可行的-iFrame来自同一个来源。我已经回答了这个问题。请尝试
console.log($('#ifr').contents())
并确保数据是您所期望的console.log($('#ifr').contents())返回具有offset()函数的对象。console.log(“#ifr”).contents().find(“#submitButton”)还返回一个具有偏移量函数的对象然后
$(“#ifr”).contents().find(“#submitButton”).offset()
,只要在加载iFrame后调用代码并且帧位于同一域上,就可以工作
$('#ifr').contents().find('#submitButton').offset()
$("#ifr").on("load", function(){
    var offset = $(this).contents().find('#submitButton').offset();
});