A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

60黑马币
如题,使用iframe引入了外部网页,如何更改外部网页显示的内容

6 个回复

倒序浏览
fanxiaolin 来自手机 中级黑马 2016-3-28 17:26:54
沙发
这个框架不是要分成3个板块?至于显示内容,你说的是前端吧?  写html就行了,
回复 使用道具 举报
这个框架不是要分成3个板块?  写html就行了,
回复 使用道具 举报
还没学到这块,所以我只能来打酱油了
回复 使用道具 举报
iframe标签只是引入作用,需要修改外部网页,找到外部网页使用前端工具,例如Dreamweaver等工具修改就行了啊,自定义你的代码不久行了吗? {:3_56:}
回复 使用道具 举报
亲,如果是html里面嵌套了iframe的话总共分为两种情况:

第一种是:父页面与子页面属与同一个域。例如:
<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title></title>
        </head>
        <body>
                <iframe id="children"  src="../OrangeBus/01.html" ></iframe>
        </body>
</html>

此时如果想获取01.html里面的元素应该是:window.frames["children"].document.getElementById("元素id");




第二种是:父页面引入的子页面不属于同一个域
例如:


<html>
        <head>
                <meta charset="UTF-8">
                <title></title>
        </head>
        <body>
                <iframe id="children"  src="www.bb.com" ></iframe>
        </body>
</html>



其中 父页面的域名假如是:www.aa.com 子页面域名:www.bb.com 。两者不属于同一个域名。


当两个域不同时,如果想相互调用,那么同样需要两个域都是由你来开发才可以。
用iframe可以实现数据的互相调用。解决方案就是用window.location对象的hash属性。hash属性就是http://domian/web/a.htm#dshakjdhsjka 里面的#dshakjdhsjka。利用JS改变hash值网页不会刷新,可以这样实现通过JS访问hash值来做到通信。不过除了IE之外其他大部分浏览器只要改变hash就会记录历史,你在前进和后退时就需要处理,非常麻烦。不过再做简单的处理时还是可以用的。大体的过程是页面a和页面b在不同域下,b通过iframe添加到a里,a通过JS修改iframe的hash值,b里面做一个监听(因为JS只能修改hash,数据是否改变只能由b自己来判断),检测到b的hash值被修改了,得到修改的值,经过处理返回a需要的值,再来修改a的hash值(这个地方要注意,如果a 本身是那种查询页面的话比如http://domian/web/a.aspx?id=3,在b中直接parent.window.location是无法取得数据的,同样报没有权限的错误,需要a把这个传过来,所以也比较麻烦),同样a里面也要做监听,如果hash变化的话就取得返回的数据,再做相应的处理。

总结:
第一种情况:域和子域的问题,可以完全解决交互。
第二种情况:跨域,实现过程非常麻烦,需要两个域开发者都能控制,适用于简单交互。



ps:对于域的理解,一般初学java的话,完全可以默认为一个项目就是一个域。

最后啰嗦一句:在现在的开发中,iframe可能会有用到,但是从技术的发展来看,这个属于要过时的技术啦~~

(第一次打这么多字===,希望能对你有帮助,如果有问题,可以私聊我哦~)














回复 使用道具 举报
这个框架是String 类型
public static void main(String []agrs){

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马