如果我尝试打开弹出窗口,并使用元标记设置字符编码,则新窗口会忽略该标记。如果我手动将新窗口上的编码设置为UTF-8,则HTML只能正确显示。
var headerPopupContent = '<head>'
+ '<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">'
+ '<title>Chat</title>'
+ '<link rel="stylesheet" href="assets/css/style.css">'
+ '<link rel="stylesheet" href="assets/css/style-rtl.css">'
+ '</head>';
var chatBoxContent = $('#popup-box').html();
var footerPopupContent = '<script src="assets/js/jquery-1.12.3.min.js"></script>'
+ '<script src="assets/js/script.js"></script>';
var win = window.open('', '', 'width=350, height=430, top=50, left=50, resizable=1, scrollbars=1');
win.document.open();
win.document.write(headerPopupContent + chatBoxContent + footerPopupContent);
win.document.close();
答案 0 :(得分:0)
我将路径更改为反斜杠,并且有效。
感谢mplungjan
var footerPopupContent = '<script src="assets\js\jquery-1.12.3.min.js"></script>'
+ '<script src="assets\js\script.js"></script>'
答案 1 :(得分:0)
请转义结束脚本标记,因为它们会破坏现有脚本,除非代码位于外部js文件中:
var footerPopupContent = '<script src="assets/js/jquery-1.12.3.min.js"><\/script>'
+ '<script src="assets/js/script.js"><\/script>';
由于第一个document.write将打开文档,因此不需要win.document.open();
。在过去,人们认为document.open将mime类型作为参数,但我相信它从未奏效。
此外,在页面加载后调用document.write()时会发生自动document.open()调用,但是在W3C规范中没有定义。