我需要读取源代码内容一个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 末尾 # 字符后面的文本)。因此,您设置了哈希,这不会导致页面重新加载,并且脚本可以"轮询"对该哈希的更改。