【发布时间】:2013-06-05 17:49:46
【问题描述】:
我有一个带有 svg 标签的页面。该页面有一个名为“预览”的按钮,单击该按钮应打开一个带有图像(svg)的新窗口。
下面是一段代码,它在 Chrome/Firefox 中有效,但在 IE 中无效(我使用的是 IE 9- IE9 标准模式)
var w = window.open();
var svg = $('#chart');
var svgPrint = svg.cloneNode(true);
svgPrint.setAttribute('xmlns','http://www.w3.org/2000/svg');
w.document.body.appendChild(svgPrint);
任何建议都将受到高度赞赏。
谢谢。
【问题讨论】:
-
我猜
about:blank是在Quirks模式下运行的,不支持svg。 -
@Teemu 它正在以 IE9 标准模式运行...
-
是的,您的主页是,但是您打开的
window更有可能在 Quirks 模式下运行,因为它没有 doctype 声明...只需打开一个真实的记录在里面。 -
@Teemu 上面的代码也不适用于其他 html 元素.. :( 我尝试使用仅包含文本的 html div 打开新窗口。即使这样也行不通..我得到一个空白页。
-
奇怪,IE 抛出 SCRIPT5022 错误 (
Exception thrown and not caught)。但是这段代码与try..catch无关?!将真实页面加载到新打开的窗口也不会消除此错误。设置w.document.body.innerHTML = '...'似乎有效。在try..catch中包含appendChild()时,错误消息为HierarchyRequestError,这意味着“无法在请求的位置插入节点”。这闻起来是 IE 中的一个大错误......
标签: javascript internet-explorer window.open appendchild