Javascript jquery获取iframe中元素的偏移量()
我需要获取submit按钮的偏移量信息,该按钮深埋在div中的iframe中。我想在iframe加载后定位另一个与submit按钮相邻的元素。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
<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();
});