Html 访问iFrame中的变量,反之亦然

Html 访问iFrame中的变量,反之亦然,html,iframe,variables,air,adobe,Html,Iframe,Variables,Air,Adobe,我有一个带有iFrame的html页面,我想从中读取一些变量。 它基本上是一张地图,我想从中检索纬度和经度值 我一直在使用AdobeAIR,并尝试从innerHTML、contentWindow检索值,但仍然无法使其正常工作 有什么好方法可以做到这一点吗?您可以使用jQuery访问iframe中的内容 <iframe id="iframeId" ...> .... <div id='someData'>data</div> ....</iframe>

我有一个带有iFrame的html页面,我想从中读取一些变量。 它基本上是一张地图,我想从中检索纬度和经度值

我一直在使用AdobeAIR,并尝试从innerHTML、contentWindow检索值,但仍然无法使其正常工作


有什么好方法可以做到这一点吗?

您可以使用jQuery访问iframe中的内容

<iframe id="iframeId" ...> .... <div id='someData'>data</div> ....</iframe>
$('#iframeId').contents().find('#somedata').html(); // returns data
。。。。数据。。。。
$('#iframeId').contents().find('#somedata').html();//返回数据

您可以使用jQuery访问iframe中的内容

<iframe id="iframeId" ...> .... <div id='someData'>data</div> ....</iframe>
$('#iframeId').contents().find('#somedata').html(); // returns data
。。。。数据。。。。
$('#iframeId').contents().find('#somedata').html();//返回数据

浏览器安全模型禁止任何跨域流量/通信。如果我们处理不同的子域,规则可以放宽到顶级域。但最终,你没有追索权


如果您的应用程序需要跨越域边界进行通信,那么通过后端进行通信通常是您的最佳选择。如果你不能控制iframe中的内容,那么你通常就倒霉了。仅供参考,谷歌地图确实提供了使用其应用程序的API

浏览器安全模型禁止任何跨域流量/通信。如果我们处理不同的子域,规则可以放宽到顶级域。但最终,你没有追索权


如果您的应用程序需要跨越域边界进行通信,那么通过后端进行通信通常是您的最佳选择。如果你不能控制iframe中的内容,那么你通常就倒霉了。仅供参考,谷歌地图确实提供了使用其应用程序的API

您必须使用应用程序到非应用程序的沙箱桥。这将允许您在两个区域(iframe和general)之间进行通信。看看这里

您必须使用应用程序到非应用程序的沙箱桥。这将允许您在两个区域(iframe和general)之间进行通信。请看这里

谢谢各位的回复

@svend:“通过后端”到底是什么?我不明白。。我控制iFrame中的内容,它位于另一个域上


@韦伯:谢谢你的链接韦伯。。。看来我会成功的。。我会试试看

谢谢各位的回复

@svend:“通过后端”到底是什么?我不明白。。我控制iFrame中的内容,它位于另一个域上


@韦伯:谢谢你的链接韦伯。。。看来我会成功的。。我会试试看

在跨域通信的情况下,应用程序到非应用程序沙箱桥接器工作


谢谢你们的回复

在跨域通信的情况下,应用程序到非应用程序沙箱桥接器工作


谢谢你们的回复

我必须这样做:

1-在包含iframe的文件中添加隐藏输入,用户在其中更改lng和lat时将其保存

2-在js上创建此函数:

function getFrameWindow(frameId) {

  var frame = document.getElementById(frameId);
  var result = null;
  if (frame.contentDocument) {
    // For NS6
    result = frame.contentDocument.window || frame.contentDocument.defaultView; 
  } else if (frame.contentWindow) {
    // For IE5.5 and IE6
    result = frame.contentWindow;
  } else if (frame.document) {
    // For IE5
    result = frame.document.window;
  }
  return result;
}
3-使用包含iframe的javascript中的以下代码:

getFrameWindow("iframe").document.getElementById("lat").value

我必须这样做:

1-在包含iframe的文件中添加隐藏输入,用户在其中更改lng和lat时将其保存

2-在js上创建此函数:

function getFrameWindow(frameId) {

  var frame = document.getElementById(frameId);
  var result = null;
  if (frame.contentDocument) {
    // For NS6
    result = frame.contentDocument.window || frame.contentDocument.defaultView; 
  } else if (frame.contentWindow) {
    // For IE5.5 and IE6
    result = frame.contentWindow;
  } else if (frame.document) {
    // For IE5
    result = frame.document.window;
  }
  return result;
}
3-使用包含iframe的javascript中的以下代码:

getFrameWindow("iframe").document.getElementById("lat").value

iframe和main中的页面是否在同一个域中?iframe和main中的页面是否在同一个域中?我认为svend的意思是您应该通过提供容器页面的域代理iframe内容。我认为svend的意思是您应该通过提供容器页面的域代理iframe内容。您可以还可以添加变量而不是隐藏输入,并按如下方式访问它们:getFrameWindow(“iframe”).document.variable\u name您还可以添加变量而不是隐藏输入,并按如下方式访问它们:getFrameWindow(“iframe”).document.variable\u name