[ js ] frame的onload事件的問題

看板Ajax作者 (夏天的微笑)時間15年前 (2010/06/15 17:26), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
我在寫一個網站的Greasemonkey腳本 作用在一個貼圖討論區 (http://www.komica.org/) 網頁是一個框架頁 框架的部份長這樣: <frameset cols="120,*"> <frame src="/bbsmenu.htm" name="menu"> <frame src="/mainmenu.htm" name="cont"> </frameset> 框架頁分為左右兩邊 左邊是選單 有很多看板的連結 點了連結後會在右邊開啟該看板 這是GM程式碼(只截取和問題有關的部份) contFrame = document.getElementsByTagName('FRAME')[1]; contFrame.addEventListener("load", do_something, false); function do_something(){ //在這裡對看板作某些事 } 程式的目的是希望每次框架右半的網頁載入時執行do_something函數 從左邊的選單點看板連結時要執行do_something 在看板內點下一頁的連結而更新網頁內容時也要執行 總之只要是顯示在框架右半邊的網頁 都要讓do_something函數作用過一次 但是現在的寫法 只有在框架頁本身載入時會執行do_something函數一次 之後框架右半的網頁變動時 都不會再次呼叫do_something函數 請問應該要如何修改 才能達到上述的要求呢? -- 起初,他們捉共產黨員 ,﹑ ,我不說話,因為我不是共產黨員 後來,他們捉▕工會會員 _<> ,﹑ ,我不說話,因為我沒有參加工會 後來,他們捉▕天主教徒<█『 ,﹑ ,我還是不說話,因為我是新教徒 後來,他們捉▕ 猶太人 /\ 」」 ===,我不說話,因為我是日耳曼人 ψQSWEET** 最後, 等到他們來捉我時 ▏ ▏ 已經沒有人能為我說話了... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.219.121

06/16 21:18, , 1F
我記得糟糕島,不是K島,他的左右兩邊網域好像不同,所以
06/16 21:18, 1F

06/16 21:18, , 2F
要做到兩邊都有動作有點難~~
06/16 21:18, 2F

06/16 23:31, , 3F
剛才測試了一下,好像是因為框架內的網頁和框架頁在不同網域
06/16 23:31, 3F

06/16 23:31, , 4F
所以才沒辦法正常運作. 這是javascript本身的限制嗎
06/16 23:31, 4F

06/16 23:31, , 5F
也就是說,想從框架頁對框架內不同網域的網頁作動作,
06/16 23:31, 5F

06/16 23:31, , 6F
理論上是辦不到的? 或者還有其他方法可以作到嗎?
06/16 23:31, 6F

06/16 23:49, , 7F
基於安全性的理由,跨網域的執行是辦不到的。
06/16 23:49, 7F

06/17 00:03, , 8F
XHR抓框架內容,重繪整個網頁,用CSS排版替代框架。
06/17 00:03, 8F

06/17 00:35, , 9F
xhr也無法抓取外部網域網站的內容。
06/17 00:35, 9F

06/17 00:38, , 10F
GM_xmlhttpRequest 可跨域
06/17 00:38, 10F

06/17 00:42, , 11F
原來是講gm內建的成員,我以為是講js的。 sorry.
06/17 00:42, 11F

06/17 02:54, , 12F
謝謝各位的回答 我再來研究看看XHR
06/17 02:54, 12F
文章代碼(AID): #1C5qSpjU (Ajax)
文章代碼(AID): #1C5qSpjU (Ajax)