作者LaPass (LaPass)
看板Ajax
标题[问题] jquary tool 对top做一些处理
时间Wed Mar 14 15:18:01 2012
目前正在做overlay,用的是jquerytool
范例是这样
http://jquerytools.org/demos/overlay/custom-effect.htm
目前遇到个问题
是希望出现的效果是,点下图片,出现大图
并把整个视窗给档掉,不让人点 (如范例,挡住的那一层青黑色层,官网叫他mask)
但我使用那个东西的网页是在一个iframe中
(都是同一网域,但是我不能改最外层的网页)
如果叫出overlay,那只会出现在iframe当中,并档掉ifram的滑鼠点击
最外面(top)还是能够点连结
请问,要怎麽解决?
目前我已经尝试过的方法1:
是直接操作top的document
加一个div进去,再把他变成overlay
var Dialog = "<div id='ImgOverlayShow'........</div>";
$(top.document.body).append(Dialog);
$("
#ImgOverlayShow",top.document).overlay({....});
但这样出现的结果,虽然成功在top中弄出overlay
但是,遮罩(mask 挡住滑鼠点击的那个东西)依然只出现在iframe当中
而且最糟糕的是,如果外层(top)切换iframe的网页
那个overlay就永远关不掉了(firebug会显示找不到function)
尝试过的方法2:
因为怀疑jquery tool会绑定调用window,所以想说
把script塞进top中,让他去执行,说不定能成功
var ScriptShow = top.document.createElement( 'script' );
ScriptShow.type = 'text/javascript';
ScriptShow.src = '......./jquery.tools.min.js';
ScriptShow.text = "$("
#ImgOverlayShow").overlay({....});";
// ScriptShow.text = $("
#ImgOverlayShow",top.document).overlay({....});
//这样改的话,mask一样只出现在iframe中
$(top.document.body).append(ScriptShow);
但还是失败
请问还有别的方法吗?
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.16.65
※ 编辑: LaPass 来自: 61.59.16.65 (03/14 15:26)
※ 编辑: LaPass 来自: 61.59.16.65 (03/14 15:30)
1F:推 musie:应该是要用parent.document吧? 03/14 15:34
2F:→ LaPass:iframe包了不只一层.... 而且还有框架页.... = = 03/14 15:51
3F:→ LaPass:最後是自己做一个overlay... = =" 03/15 11:15