在一個視窗中,例如 foo.example.com:
#然後在另一個視窗中,稍後,例如 bar.example.com:
這樣可以工作嗎?是否有辦法回到一個原本沒有使用 target=''
命名的視窗?
P粉4349968452023-09-17 22:32:37
視窗的name屬性確實可以在JavaScript中設定。然而,它的運作方式並不完全像你所設想的那樣。
在HTML中,元素的target屬性用於指定在哪裡開啟連結的文件。該屬性的值可以是:
_blank
:在新視窗或標籤中開啟連結的文件。
_self
:在與點擊時相同的框架中開啟連結的文件(這是預設值)。
_parent
:在父框架中開啟連結的文件。
_top
:在視窗的整個主體中開啟連結的文檔。
framename:在命名的框架中開啟連結的文檔。
因此,target屬性的值被解釋為框架名稱,而不是window.name。它們沒有直接的關聯。
然而,window.name在跨視窗通訊中扮演了一定的角色。當你從一個頁面導航到另一個頁面時,window.name會保持不變(即使在跨網域導航時),直到視窗或標籤被關閉,或視窗或標籤導航到清除window.name的不同網域上的頁面。但它不會按照你在範例中嘗試使用的方式工作。
要注意的是,window.name屬性主要用於腳本編程,而不是作為透過標籤引用頁間視窗的方式。
你試圖實現的——從另一個視窗/標籤引用現有視窗/標籤——通常由於同源策略的限制和出於安全原因的視窗間通訊的限製而無法直接實現。
然而,你可以使用其他方法,例如使用localStorage、sessionStorage或postMessage來實現某些形式的視窗間或標籤間通信,這取決於你的需求。