16
Jul

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://*;跳转即可,当没有这个错误时,页面不是被框架的不会报错,就不会进行跳转,避免了重复刷新。

 

    


About Me

Nothing is impossible!

Friends
倩倩的网站儿子的网站丽丽
CATEGORIES
Tags
ChatGPT四舍五入GOBeatles想像冰雪奇缘北京编程SSL证书认知障碍Docker春天行政区域名列表域名体系nginxopen_basedir思维指令编程语言程序URL网站上线域名FTP云服务器搜索引擎JSCSS网页超链接聚合内容列表元素网页构成网站的构成网站的分类网站单标签HTML第一个网页简单网页博域科技2018香山春游AJAX字体
Copyright©2022 王阳 版权所有  京ICP备14005672号-6