2010-12-13 148 views
0

我有一個網頁,它自己動態創建標記。在點擊某個按鈕時,我想要一個客戶端事件來「複製」該標記,並將其置於空白頁的<body>中,該空白頁將在新的瀏覽器窗口中打開。有沒有辦法做到這一點?用特定的HTML打開一個新的瀏覽器窗口

+0

您的意思是「動態地」使用服務器端語言嗎? – 2010-12-13 10:35:07

+0

笏你的意思是標記在這裏? – Varun 2010-12-13 10:36:35

+0

嗨,沒有頁面在客戶端自己創建標記。它實際上是創建一個VML圖像(我正在使用IE) - 它也在修改'

'的內容。我想解除這個圖像和表格,並在單獨的瀏覽器窗口中打開。 – 2010-12-13 10:38:06

回答

1

當打開一個新窗口時,函數返回一個「句柄」給這個窗口。

然後,您可以使用JavaScript操作新窗口(只要它指向同一個域上的URL)。

var newWindow = window.open ("", "mywindow", "location=1,status=1,scrollbars=1,width=100,height=100"); 
newWindow.document.write("Hello world"); 

newWindow.document,您可以訪問新窗口的DOM。

+0

當你說'操縱'你的意思是我可以重新引導新窗口到不同的地址?或者我真的可以將標記寫入新窗口? – 2010-12-13 10:40:03

+0

@El Ronnoco - 增加了一個例子。 – Oded 2010-12-13 10:44:30

+0

好吧,我已經設法注入標記,但我的VML不在窗口中呈現,即使我查看源代碼,它仍然存在。有任何想法嗎?單獨的問題,我知道... – 2010-12-13 11:23:59

3

正如你希望在客戶端使用JavaScript(來自你的標籤),你可以使用window.open

var w = window.open("", "Some Title"); 
w.document.body.innerHTML = "yay!"; 

需要注意的是,在這個例子中,內部window.open功能的目標是一個空字符串,這意味着新窗口中打開將是一個空白窗口(不重定向到喜歡你的網站的任何URL)。

+0

+1感謝您的回答。不幸的是,我不能直接寫入'body',因爲它還不存在。 – 2010-12-13 11:23:12

+0

這可能取決於您使用的瀏覽器。 Firefox 3.6自動添加一個body元素(沒有內容)到新窗口。 – dheerosaur 2010-12-13 11:29:56

相關問題