【发布时间】:2018-11-22 05:12:24
【问题描述】:
我有一个带有表格和打印按钮的文档。打印按钮调用 javascript 函数以在新窗口中生成可打印版本。可打印版本应从站点加载样式表。但是样式表不会加载。当我从新打开的窗口打开源代码时,尽管样式表 href -appears- 正确,但单击它什么也没做。很明显,我的浏览器无法将其识别为正确的 href。
SO:为什么链接标签不被识别为href?
这里是javascript函数:
jQuery("div.jch-noise_records span.print_button a").on('click', function(e) {
e.preventDefault();
var getpanel = document.getElementById("jch-noise_records");
var MainWindow = window.open('', '', 'height=500,width=800');
MainWindow.document.write('<!DOCTYPE html>\r\n');
MainWindow.document.write( '<html lang="en-US">\r\n<head>\r\n');
MainWindow.document.write( '<title>Noise Records Report</title>\r\n');
MainWindow.document.write( '<link rel="stylesheet" href="http://example.com/wp-content/plugins/jchwebdev-noise_by_hour/jchwebdev-noise_by_hour.css" type="text/css" media="all" />\r\n');
MainWindow.document.write( '</head>\r\n');
MainWindow.document.write( '<body>\r\n');
MainWindow.document.write( getpanel.innerHTML);
MainWindow.document.write( '\r\n</body>\r\n</html>\r\n');
MainWindow.document.close();
MainWindow.document.focus();
// MainWindow.print();
return true;
});
下面是打印窗口中生成的一些html:
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Noise Records Report</title>
<link rel='stylesheet' href='http://example.com/wp-content/plugins/jchwebdev-noise_by_hour/jchwebdev-noise_by_hour.css' type='text/css' media='all' />
</head>
<body>
<span class="close"><a title="Close" href="#">X</a></span><div class="jch_table_wrapper"><p class="header"><span class="report_date">2018-06-12 18:00</span><span class="report_title">Noise By The Hour (Checkbox Detail)</span><span class="report_ip">71.231.25.83</span></p><p class="header"><span class="report_query">For date >= 2018-01-01 AND date <= 2018-05-31</span></p><table id="jch-noise_by_hour" class="jch-noise"><tbody><tr class="total"><td colspan="5">Total of <span>151 </span> days tracked for <span></span> at <span> 12AM</span> from <span>01/01/2018</span> to <span>05/31/2018</span><br>
Average noise: <span>82.8dbA</span><br>
Total # of events detected: <span>12,153</span><br>
Average number of events/hour: <span>6</span></td></tr>
</tbody></table></div>
</body>
</html>
【问题讨论】:
-
如果您将
http://example.com/wp-content/plugins/jchwebdev-noise_by_hour/jchwebdev-noise_by_hour.css放入您的网址栏中.. 是否会将您带到 CSS 表? -- 是否重定向到https://?当你只做<link rel='stylesheet' href='/wp-content/plugins/jchwebdev-noise_by_hour/jchwebdev-noise_by_hour.css' type='text/css' media='all' />时会发生什么? -
为什么要转义 URL 中的斜杠?它是一个字符串,而不是正则表达式,您的部分问题可能是转义那些
href=\'http://example.com/wp-content/plugins/jchwebdev-noise_by_hour/jchwebdev-noise_by_hour.css\' -
@Zak,如果我将网址粘贴到浏览器中,它可以正常工作。如果我碰一下 它什么也不做。
-
@mpallansch 我只是在没有尝试过之后才尝试转义斜线。无论哪种方式都行不通。同样,它在 Firefox 中显示为语法突出显示的链接,但您无法单击它并且链接的 CSS 表不会加载。
-
@scnliffe 我在 window.open 的第一个参数中添加了一个虚拟页面,这似乎已经成功了。
标签: javascript html css href