我有一个iframe,想要从iframe中的页面获取一些HTML,或者有机会使用jQuery更改iframe页面上的HTML。
我使用此代码从iframe获取内容:
$('iframe#iframeBB').contents().find('table').each(function() {
var at = $(this).attr('summary');
if (at == "Latest Data") {
$('table#main').html($(this).html());
}
});
只要iframe的源位于同一个域,这样就可以正常工作。我的问题是源是在另一个子域。我知道这是违反同源政策的,但是有办法做到这一点吗?
答案 0 :(得分:1)
如果它是子域名,则必须通过在页面上设置document.domain来让两者都在同一个tld上工作。
document.domain = "yourdomain.com"
答案 1 :(得分:0)
我认为唯一的方法是使用服务器端获取页面的html输出并将其输出到iframe中。
答案 2 :(得分:0)
document.domain解决方案对我没用。但我发现,您可以通过服务器设置Access-Control-Allow-Origin
标题来允许跨域访问。
你可以这样做,例如在.htaccess
文件中,如果服务器支持它:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://REQUESTING.domain"
</IfModule>