FineUI 官方论坛

标题: 请问用js如何获取iframe中页面的源代码 [打印本页]

作者: 幻之达    时间: 2012-9-8 09:13
标题: 请问用js如何获取iframe中页面的源代码
代码见图
[attach]1046[/attach]

请问用js如何获取iframe中页面的源代码

作者: nboy    时间: 2012-9-8 21:36
参考一下吧:
var reloadPage = function (str) {
    var tabStrip1 = Ext.getCmp('TabStrip1');
    var activeTab = tabStrip1.getActiveTab();
    var win;
    if (activeTab.id == 'tabHome') {
        var iframeName = activeTab.x_iframe_name;
        win = document.getElementsByName(iframeName)[0].contentWindow;
    }
    else {
        var fs = Ext.select('iframe[name*=' + activeTab.id + ']');
        if (fs.elements.length > 0) {
            win = fs.elements[0].contentWindow;
        }
    }
    if (win) {
        if (str == 'Tab') {
            win.location = win.location;
        }
        else {
            win.reload(str);
        }
    }
};
作者: 幻之达    时间: 2012-9-9 14:13
本帖最后由 幻之达 于 2012-9-10 06:16 编辑
nboy 发表于 2012-9-8 21:36
参考一下吧:
var reloadPage = function (str) {
    var tabStrip1 = Ext.getCmp('TabStrip1');

有两点不明白,请教
1、ar reloadPage = function (str) , 这参数是传URL吗,如果URL是有判断登录后才能打开的,这样写,当前页面会返回登录页面。

2、代码中的'tabHome'是哪个ID
作者: sanshi    时间: 2012-9-11 01:44
这个怎么样:
  1. var tab3ClientID = '<%= Tab3.ClientID %>';
  2. Ext.getCmp(tab3ClientID).el.query('iframe')[0].contentWindow.document.body.innerHTML;
复制代码

作者: 幻之达    时间: 2012-9-11 06:39
sanshi 发表于 2012-9-11 01:44
这个怎么样:

运行正常:Ext.getCmp(tab3ClientID).el.query('iframe')[0].contentWindow,

运行:Ext.getCmp(tab3ClientID).el.query('iframe')[0].contentWindow.document.body.innerHTML
提示:拒绝访问
作者: sanshi    时间: 2012-9-11 07:01
幻之达 发表于 2012-9-11 06:39
运行正常:Ext.getCmp(tab3ClientID).el.query('iframe')[0].contentWindow,

运行:Ext.getCmp(tab3Cli ...

两个页面所处的域不一样?不在同一个域下网页不能相互访问:http://en.wikipedia.org/wiki/Same_origin_policy
作者: 幻之达    时间: 2012-9-11 07:10
sanshi 发表于 2012-9-11 07:01
两个页面所处的域不一样?不在同一个域下网页不能相互访问:http://en.wikipedia.org/wiki/Same_origin_p ...

那就是说,没法取得IFRAME网页源码了
作者: 幻之达    时间: 2012-9-12 04:51
诸位高手,请出手相助
作者: sanshi    时间: 2012-9-12 05:19
幻之达 发表于 2012-9-12 04:51
诸位高手,请出手相助

不同域无法获取其中内容,这是所有浏览器的安全限制。不过也有办法,看我的博客
作者: 幻之达    时间: 2012-9-12 07:12
sanshi 发表于 2012-9-12 05:19
不同域无法获取其中内容,这是所有浏览器的安全限制。不过也有办法,看我的博客 ...

http://www.cnblogs.com/sanshi/
先生,请问是哪篇文章,谢谢
作者: sanshi    时间: 2012-9-12 07:22
幻之达 发表于 2012-9-12 07:12
http://www.cnblogs.com/sanshi/
先生,请问是哪篇文章,谢谢

Sorry,很久之前的文章,应该是在公司博客上。

你可以到网上搜一下:跨域消息传递     Cross domain message

并且还有开源实现:http://easyxdm.net/wp/
作者: 幻之达    时间: 2012-9-12 09:59
本帖最后由 幻之达 于 2012-9-12 10:07 编辑
sanshi 发表于 2012-9-12 07:22
Sorry,很久之前的文章,应该是在公司博客上。

你可以到网上搜一下:跨域消息传递     Cross domain mes ...


先生您提供的网站,我英文弱菜,就只会看 iframe,其中一例子:Resize iframe based on content(http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/
但在例子没有看到如何获取 iframe页面源码。

iframe的URL是别的网站动态文件(验证 session才能打开页面,否则返回登录页面)

恳求先生指教,谢谢。
作者: sanshi    时间: 2012-9-13 01:35
幻之达 发表于 2012-9-12 09:59
先生您提供的网站,我英文弱菜,就只会看 iframe,其中一例子:Resize iframe based on content(http:// ...

跨域消息传递,能传递消息不就能获取页面源码.....


作者: 幻之达    时间: 2012-9-13 07:34
sanshi 发表于 2012-9-13 01:35
跨域消息传递,能传递消息不就能获取页面源码.....

先生,在官方网站例子中没有看到如何获取iframe中页面的源码

请给予指导下。谢谢!
作者: 幻之达    时间: 2012-9-21 07:44
自己顶下。各路高手请帮答下




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4