2010-12-13 147 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

相关问题