作者Kenqr (夏天的微笑)
看板Ajax
标题[ js ] frame的onload事件的问题
时间Tue Jun 15 17:25:58 2010
我在写一个网站的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
1F:推 mesak:我记得糟糕岛,不是K岛,他的左右两边网域好像不同,所以 06/16 21:18
2F:→ mesak:要做到两边都有动作有点难~~ 06/16 21:18
3F:→ Kenqr:刚才测试了一下,好像是因为框架内的网页和框架页在不同网域 06/16 23:31
4F:→ Kenqr:所以才没办法正常运作. 这是javascript本身的限制吗 06/16 23:31
5F:→ Kenqr:也就是说,想从框架页对框架内不同网域的网页作动作, 06/16 23:31
6F:→ Kenqr:理论上是办不到的? 或者还有其他方法可以作到吗? 06/16 23:31
7F:→ TonyQ:基於安全性的理由,跨网域的执行是办不到的。 06/16 23:49
8F:→ shyangs:XHR抓框架内容,重绘整个网页,用CSS排版替代框架。 06/17 00:03
9F:→ TonyQ:xhr也无法抓取外部网域网站的内容。 06/17 00:35
10F:→ shyangs:GM_xmlhttpRequest 可跨域 06/17 00:38
11F:→ TonyQ:原来是讲gm内建的成员,我以为是讲js的。 sorry. 06/17 00:42
12F:→ Kenqr:谢谢各位的回答 我再来研究看看XHR 06/17 02:54