0
A
回答
2
這裏的一切我能想到的:
- 瀏覽器決定是否根據其彈出的設置您的
open
請求(大多數瀏覽器會忽略調用open
不在直接響應忽視到用戶事件,如點擊)。假設它允許: - 瀏覽器創建一個新窗口。它可能會或可能不會選擇在新選項卡中創建該窗口,並且它可能會或可能不會注意您所請求的尺寸和設置(如果您已經請求了一些)。
- 瀏覽器設置新窗口的
opener
屬性,使其指向發出open
調用的窗口的window
對象。 - 瀏覽器開始將所需資源加載到新窗口中(如果您提供了要加載的資源)。
window.open
調用返回對新的window
對象的引用。
請注意,窗口之間的引用是相關的window
對象的「外部」方面,它不一定與實際窗口對象相同。 (奇怪,但是真的;這是爲了安全;更多是在this other StackOverflow question。)所以可能是,雖然你打開了一個窗口,但你不能訪問該窗口的內容,因爲它來自不同的原點。
關於內部結構關於瀏覽器實際上是如何實現它的,這完全取決於瀏覽器的實現。對於Firefox和Chrome等開源瀏覽器,您可以通過查看源代碼找到...
0
瀏覽器創建一個新的窗口,設置名稱,尺寸,位置,選項等,然後將URL加載到其中。你是這個意思嗎?
相關問題
- 1. 當我們使用ajax時究竟發生了什麼
- 2. 當我複製並編輯此列表時,究竟發生了什麼?
- 3. Proc :: Background究竟發生了什麼?
- 4. 當PictureBox.Visible設置爲True時,C#中究竟發生了什麼?
- 5. 當您爲MongoDB數據庫編制索引時究竟發生了什麼?
- 6. 當我在C++中執行buffer1.push_back(buffer2.front())時究竟發生了什麼?
- 7. 睡眠線程時究竟發生了什麼
- 8. 從IE6升級到IE7 +時究竟發生了什麼?
- 9. 線程崩潰時究竟發生了什麼?
- 10. Java中的JPanel發生了什麼?我究竟做錯了什麼?
- 11. visibleContentsAsDataURL究竟做了什麼?
- 12. KeyListener究竟做了什麼?
- 13. document.normalize究竟做了什麼?
- 14. MapView.preLoad()究竟做了什麼?
- 15. handleParkingUpdate()究竟做了什麼?
- 16. MIBCC.EXE究竟做了什麼?
- 17. UserTransactionManager究竟做了什麼
- 18. rbind.fill.matrix究竟做了什麼?
- 19. rangeOfCharacterFromSet究竟做了什麼?
- 20. Panel.IsItemsHost究竟做了什麼?
- 21. 「setContentView」究竟做了什麼?
- 22. fillMode究竟做了什麼?
- 23. .selectAll()究竟做了什麼?
- 24. JspFragment.invoke究竟做了什麼?
- 25. 當一個對象被序列化時究竟發生了什麼
- 26. 當你在C中引用靜態變量時究竟發生了什麼?
- 27. 當Surivor空間大小限制達到時,究竟發生了什麼?
- 28. 餅乾。我究竟做錯了什麼?
- 29. 全選?我究竟做錯了什麼?
- 30. 。我究竟做錯了什麼?
您能更具體嗎?我的意思是,答案是:瀏覽器打開一個窗口。但是,我懷疑你想要更多... :-) – 2011-01-27 13:00:51
當你雙擊瀏覽器圖標時,同樣的事情發生,但是window.open()通過參數傳入瀏覽器窗口 – 2011-01-27 13:01:04
在你調用window.open之前放置調試器。嘗試調試 – 2011-01-27 13:03:25