※ 引述《piligo (霹靂狗)》之銘言:
: 標題下的怪怪的
: 譬如aaa.htm內有三個超連結,透過target="_xyz",另外開一個新視窗,
: 當三個連結都設target="_xyz",這樣都會在新的同一個視窗更換內容,
: 當那個新視窗自己敲網址(譬如abc.com)連到網站後,但又點到aaa.htm
: 內的某個連結,會造成abc.com的網頁被替換掉,當站在abc.com的角度
: 來看,在網頁有沒有什麼語法加入後可以替換掉_xyz這個值,避免被替
: 換掉。
原本以為你看推文就了解了說...想說不必打一篇文章 XD
站在 abc.com 的角度,當然有辦法來替換掉 _xyz 這個名稱阿,
就是在 OnUnload 的時候,重新設定一個名稱給視窗,
舉例來說,
當你從 aaa.htm 開 target="_xyz" 的連結,
他就會再開一個新視窗。然後被開啟的視窗名稱就叫做 _xyz
這時候,視窗名字已經被設定了嘛 @@
當你再度按下 target="_xyz" 的連結的時候,由於已經指定
目標是把網頁開在名叫做 _xyz 的視窗,所以就會出現你說的情況
也就是點不同的連結,都開到同一個視窗去了。
站在 abc.com 的角度來說,唯一的解法就是視窗狀態改變的時候,
順便改變視窗的名稱,這樣下一次你按下 target="_xyz" 的時候,
他就會開一個新的視窗,因為這時候已經沒有視窗叫做 "_xyz" 了。
(我推文的第一句話就是這個意思)
: 謝謝
<script language="JavaScript">
document.write(window.name); /* 這時候視窗名稱還是 _xyz */
function chname() {
window.name = 'test';
}
</script>
<body OnUnload="chname();">
<!-- 離開網頁之後,視窗名稱就跟著改變 -->
<a href="http://ptt.cc">ptt.cc 按下之後,換網頁,本視窗名稱也會跟著變</a>
</body>
我的意思是這樣,你自己觀察一下就知道了。
當你離開的時候,視窗名稱就會被覆寫掉,
這是站在 abc.com 的角度的時候的一個簡單解法...
-
呃,這不是 JavaScript 的第一章嗎? @_________@
--
The Internet: where men are men, women are men, and children are FBI agents.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.223.205
※ 編輯: roga 來自: 220.130.223.205 (05/15 17:53)