我正在使用原型JavaScript库来读取文本区域的内容(通常是另一个HTML页面的完整标记),创建一个新窗口然后设置新窗口内容是相同的标记,如下:
var htmlContent = $("msHTML").value;
var win = window.open("preview.cfm", "Preview HTML", "left=20,top=20,width=500,height=500,toolbar=0,resizable=1,scrollbars=1");
win.document.write(htmlContent); //TODO - throwing an error in IE 7 - Error Invalid Argument
win.document.close();
这在Firefox中运行得很好,但正如评论中所提到的,它在IE7中给出了非法参数异常。
有人可以帮忙吗?
我在原型库中找不到任何可能在设置文档内容时解决浏览器差异的问题。我知道可能有另一个可能有效的原型构建的窗口库,但我认为这似乎有点过分。
提前致谢!
答案 0 :(得分:3)
的第二个参数
window.open(url, name, features);
在IE中“名称”,绝不包含空格。(影响所有版本的IE)
//works
window.open('page.html', 'mypage', '');
//FAILS in IE
window.open('page.html', 'my page', '');
答案 1 :(得分:1)
从 window.open()
中删除网址和标题 - 这是与安全相关的问题。无论如何,您都不需要指定URL,因为您在代码的下一行覆盖了窗口的内容。
这有效:
var win = window.open('', '', 'left=20,top=20,' +
'width=500,height=500,toolbar=0,resizable=1,scrollbars=1');
win.document.write($("msHTML").value);