jquery获取iframe中元素的offset()

时间:2014-10-28 22:25:41

标签: javascript jquery iframe

我需要获取深埋在div中的iframe中的提交按钮的偏移信息。我想在加载iframe后将另一个元素放在提交按钮旁边。 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>

我已经尝试了

$('#editBox').contents().find('#submitButton').offset();

$('#ifr').contents().find('#submitButton').offset()

但两者都未定义。

我还将.contents语句包装在setTimeout中,以确定问题是否是我在加载iframe之前检查的问题。 (如果有效,我会添加一个加载的事件处理程序),但没有变化,结果仍未定义。

如何获得我需要的位置信息?

1 个答案:

答案 0 :(得分:0)

将代码包含在iframe的load()函数中。这就像文档就绪函数或窗口加载函数一样工作:

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