欢迎来到天天文库
浏览记录
ID:31196953
大小:64.07 KB
页数:6页
时间:2019-01-07
《用jquery进行修复在iframe下的页面锚点失效问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用jquery进行修复在iframe下的页面锚点失效问题应用场景是:iframe页面没有滚动条,在父窗体中出现滚动条,锚点标记就会失效,因为,锚点是根据当前窗口滚动条滚动窗口的,成为子窗体后没有了滚动条,自然不会滚动。解决办法是:用js判断页面是否被嵌套,用js计算iframe在父窗体位置,锚点在firame中的位置,两者相加成为父窗体的滚动。遇到问题:获取父窗体元素(因为有域限制,所有需要在网络环境下方位(即));父窗体嵌套多个iframe,判断是否是当前iframe页面。代码如下:父窗体页面index.html复制代码代码如下:It;!doctypeh
2、tmlgt;1tjhtmlgt;It;headgt;1t;titlegt;1t;/titlegt;It;styletype=text/cssgt;*{margin:0;padding:0:border:0;}html,body{width:100%;height:100%;}It;/stylegt;It;/headgt;It:divstyle=width:100%;background:#f00;height:500px;gt;It;/divgt;It:ahref=gt;ddlt;/agt;It;ahref=gt;dddlt;/agt;c=iframe・h
3、tlt;iframename=ifra.me2id=iframe2srml?a=bamp;c=dstyle二width:100%;height:2060px;gt;It;/iframegt;It;iframename=iframe2id=iframe2src=iframe・html?a=damp;c=bstyle=width:100%;height:2060px;gt;1t;/iframegt;It;/bodygt;It:/htmlgt;子窗体页面iframe.html复制代码代码如下:It;!doctypehtmlgt;Itjhtmlgt;1t;head
4、gt;It;titlegt;lt;/titlegt;It;styletype=text/cssgt;a{padding:5px;border:lpxsolid#f00;float:left;display:block;margin-right:5px;}div{width:80%;margin:lOpxauto;height:50Opx;border:lpxsolid#f00;font-size:30px;It;/stylegt;1t;scripttype二text/javascriptsrc=jquery-1.8.2.min.jsgt;1t;/scrip
5、tgt;It;scripttype=text/javascriptgt;$(function(){//如果是iframe则需要在网络中访问,因为js里有域限制//如果没有iframe则不进行处理,if(window!==window.top){//获取top窗口中的iframe,如果有iframe嵌套过多,请自行修改variframe1ist=window・top.document・getelementsbytagnameCiframe5);for(vari=0;ilt;iframelist.length;i++){//判断当前窗口是否循环中的iframe
6、if(window.location.tostring()・indexof(iframelist[i]・getattribute('src')・tostring())!=-1){//等自己的所在iframe加载完成给a锚点加事件window.top・document・getelementsbytagnameCiframe,)[i]・onload二function(){//确定iframe在父窗体的距顶部距离vartop=window.top.document.getelementsbytagnameCiframe')[i]・offsettop;$('a')
7、.each(function(){varhref=$(this).attr('href');if(href.indexof('#')!=T){//判断是否是锚点而不是链接varname=href・substring(href・indexof(')+1);$(this).bindCclick',function(){$C).each(funotion(){if($(this)・attrCname')==name){//父窗口滚动$(window.parent)・scrolltop($(this)・offset().top+top);}});});}});})
8、;It;/scriptgt;It;/headgt;It;bodyg
此文档下载收益归作者所有