01
Jan

JS实现跨域跳出框架

出现问题的原因:

客户新建网站没有备案又急欲访问,那么除了不使用大陆服务器外渠道采用转发的方式,表现出来的结果就是制作好的网站页面被某个域框架了进去,访问用户域名时看到的页面源文件为

<frameset><frame src='http://*'><frame><frameset>

这时访问http://*这个地址,才能得到原本网站的效果,由此产生不显示标题文字、后台地址不对、一些JS效果丢失(例如引用的滚动效果MSClass.js)等一系列问题;

 

希望达到的目的:

客服访问已有域名,通过嵌入到首页的js代码直接在当前窗口跳转到http://*这个地址,避免出现框架内问题并且方便客户访问;

 

注意的问题:

跨域时会有“拒绝访问”、“没有权限”之类JS出错,并且要有判断避免页面的反复刷新

 

代码:

<script language='javascript'>
try {
getu=window.parent.document.getElementsByTagName("frame");
} 
catch(err) { 
window.parent.location.href='http://*';
}
</script>


 

总结:

因为使用window.parent.document.getElementsByTagName("frame");无法得到frame的各种信息,那么被框架时是跨域的、会抛出拒绝访问错误,捕捉这个错误,当产生错误时证明页面是跨域的,利用window.parent.location.href='http://*;跳转即可,当没有这个错误时,页面不是被框架的不会报错,就不会进行跳转,避免了重复刷新。

 

    



Microblogging
About Me

王阳,1982年出生,毕业于北京西城经济科学大学;专长PHP/C#.NET/C++

Friends
倩倩的网站儿子的网站
CATEGORIES
Tags
可维护性shellCentOSUbuntu服务器威迈Nginx乐视云VisualSVNWAMPphpmyadmin春晚mysqlPHP代码智力测试扁平化设计元旦自然博物馆抓猴游戏昼与夜强拆宝宝网站世界杯创意北京远程触摸结婚中国互联网SVN威迈系统出错莜莜医学pixarQuizas跨域伪科学四川DZCsharp学习Chrome谷歌眼镜
Copyright©2010-2015 WANG YANG 版权所有