[問題] jquary tool 對top做一些處理

看板Ajax作者 (LaPass)時間13年前 (2012/03/14 15:18), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
目前正在做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)

03/14 15:34, , 1F
應該是要用parent.document吧?
03/14 15:34, 1F

03/14 15:51, , 2F
iframe包了不只一層.... 而且還有框架頁.... = =
03/14 15:51, 2F

03/15 11:15, , 3F
最後是自己做一個overlay... = ="
03/15 11:15, 3F
文章代碼(AID): #1FO4Oi3E (Ajax)