如何在iFrame中访问XML文档?

时间:2010-07-19 05:45:54

标签: html iframe

我的页面上有一个显示XML文档的iFrame。

<iframe id="iFrame2" name="iFrame2"  width="100%" height="100%">

我需要从父页面访问iFrame中的XML文档。我该怎么做?

当我尝试:

console.log(iFrame2.document);

我收到以下错误:

Permission denied for <http://localhost:3000> to get property Window.document from <http://www.imageshack.us>.

3 个答案:

答案 0 :(得分:1)

请参阅comp.lang.javascript常见问题:

http://www.jibbering.com/faq/#frameRef

答案 1 :(得分:1)

我不相信有一种跨浏览器的方式来访问不同域上的XML文档。最简单的方法是在服务器上设置一个抓取数据的小代理,然后简单地对服务器进行Ajax调用。

我从来没有使用过Rails,所以我不确切地知道服务器端会是什么样子(你必须为此创建一个单独的问题),但基本上你会设置它您的服务器将根据请求下载该XML文件并将其作为文本吐出。然后,客户端将使用Ajax请求获取此XML数据(如果您不知道那是什么,请使用Google)并使用JavaScript对其进行操作。

因此,假设您使用的是jQuery,您的域名为www.example.com,并且您有一个名为getxml的视图可以获取XML数据并将其返回,您可以使用这在JavaScript中:

$.get('http://www.example.com/getxml', function(xml) {
    // Manipulate the `xml` variable here
}, 'xml');

(有关文档,请参阅jQuery.get()。)

答案 2 :(得分:0)

在javascript中?也许像这样document.getElementById('iFrame2').contentWindow.document