为什么$(window ['iframeName']。document.body).html()在我改变.attr('src')时不起作用

时间:2010-08-27 17:38:39

标签: javascript jquery html dom iframe

为什么不

$(window['iframeName'].document.body).html()

...当我改变.attr('src')

时工作

当我在创建页面时将iframe的src属性设置为任何url时,此代码

$(window['iframeName'].document.body).html() 

......会奏效。

但是当我用.attr('src',"www.google.com.sa")更改src属性并等待加载页面时,

$(window['iframeName'].document.body).html() 

...将无效。

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

尝试:

.attr('src',"http://www.google.com.sa")

答案 1 :(得分:0)

有几件事:

首先,设置attr('src')将创建一个新的历史记录项。您应该考虑是否确实要这样做,例如如果有人可以点击后退按钮并获得最后一页。如果您不想在历史记录中更改状态(对于使用iframe而不是直接ajaex的广告或应用来说是理想的),那么您可能希望更改文档的位置。

其次,我发现与这样的页面交互更容易:

$("#frameID").contents().find("jquery selector");

您可以使用以下方式调用完整的HTML:

$("#frameID").contents(document).children().html()

答案 2 :(得分:0)

从iframe中的其他域加载页面时,无法访问该页面。这是出于安全原因。