1

我需要阅读 iframe 的源代码内容,这是一个跨域

  <script type="text/javascript">
     $(document.getElementById("iFrame")).ready(function(){
     var iframe = document.getElementById('iFrame');
     var innerDoc = iframe.contentDocument;
    });

有机会在另一个域上阅读我的 iframe 的源代码吗?

4

2 回答 2

1

正如评论者指出的那样,这是一个跨域请求,因此它不能作为 AJAX 请求工作。您可以尝试在您自己的域上创建一个端点,您可以提交一个 AJAX 请求,然后从 URL 服务器端检索内容。

于 2012-12-18T15:45:37.530 回答
1

有 HTML5 postMessage 和 URL 哈希轮询(对于不支持 HTML5 的浏览器)。

https://developer.mozilla.org/en-US/docs/DOM/window.postMessage

http://softwareas.com/cross-domain-communication-with-iframes


如果您无法控制这两个域,那么您将陷入服务器端解决方案。使用 URL 作为参数向您的域内服务器发送 ajax 请求,并让它返回 HTML。


编辑由于反对票,我将详细说明 URL Hash 轮询。尽管由于跨域限制而无法读取 URL,但您仍然可以设置 URL 哈希(URL 末尾 # 字符后的文本)。因此,您设置了哈希,这不会导致页面重新加载,并且脚本可以“轮询”对该哈希的更改。

于 2012-12-18T15:52:08.830 回答