2011-11-03 122 views
5

先決條件:的JavaScript document.domain的和端口號

瀏覽器會域爲一對(「域」,「端口」),並設置document.domain的它自己的值(或任何其他正確的)導致二傳手覆蓋端口號與空(OK,WTF!?)

參見:What does document.domain = document.domain do?

問:

是否possib le以保留端口還是允許設置端口的方式調用setter?

+1

沒有一個強大的方式AFAIK,因爲這是高度依賴於特定的瀏覽器/版本/實現......請參閱例如Mozilla實施的限制 - https://developer.mozilla.org/en/DOM/document.domain – Yahia

回答

3

如果你從來沒有設置它的document.domain的「特殊」它知道它從來沒有被設置,並且還包括端口。

一旦你設置它,它只是一個簡單的字符串,沒有端口,只會匹配具有相同字符串的其他幀。

永遠不會設置document.domain與設置的document.domain不匹配 - 即使兩者看起來像是完全一樣的東西。它與港口無關。更改後的document.domain將永遠不會匹配沒有更改的文檔,即使它已更改爲「自身」。

+0

這就是我所知道的,我只是希望有一些奇怪的怪癖。就像在使用.hta文件的瀏覽器中沒有得到一些跨域限制一樣。 – naugtur