读取另一个域上的 iframe 的源代码



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

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

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

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

有HTML5 postMessage和URL Hash轮询(适用于不支持HTML5的浏览器)。

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

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


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


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

相关内容

  • 没有找到相关文章

最新更新