iT邦幫忙

0

javascript 子母視窗互相執行對方fucn 的怪現象?

以下這個情況
要怎樣理解呢? 或是要怎麼抓bug?
還可以怎樣改寫可正常執行?

有一個a母視窗 開出b子視窗
a視窗去執行 b視窗的alert
b視窗去執行 a視窗的alert

照理是兩邊都可以執行
可是真的寫出來
反而有一個選項無法執行

以下是細節

a.htm 母視窗 a
<p><a href="#" id='w1id'> 1.母窗 執行 子窗alert採用onclick在 fun裡 </a>
<p><a href="#" onclick='bw.w2f();'> 2.母窗 執行 子窗alert採用onclick在 tag裡 </a>
<script>
bw=window.open("b.htm","e");
w1f=function(){
alert("視窗a");};
w1id.onclick=bw.w2f;
</script>

b.htm 子視窗 b
<p>3.<a href="#" id='w2id'> 子窗 執行 母窗alert採用onclick在 fun裡 </a>
<p>4.<a href="#" onclick='window.opener.w1f();'> 子窗 執行 母窗alert採用onclick在 tag裡 </a>
<script>
w2f=function(){
alert("視窗b");};
w2id.onclick=window.opener.w1f;
</script>

第一項 怎麼試都試不出來
為什麼呢?
要怎樣改寫才行?
感謝 先進專家 不吝指導

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

10
wiseguy
iT邦超人 1 級 ‧ 2013-01-02 22:46:05

動態 binding 事件,在 Firefox/Chrome 請使用 addEventListener(),在 IE 請使用 attachEvent()。你直接用 = 等號指定 (w1id.onclick=bw.w2f;) 是沒效果的。

我要發表回答

立即登入回答