【发布时间】:2014-06-19 11:01:47
【问题描述】:
我构建 HTML 页面,我想让用户“打印”HTML 到 PDF,而不嵌入 HREF 链接(因为它们链接到内部服务器,我不希望 PDF 的读者看到这些链接)。
在 Chromium 中,生成的 PDF 文件会嵌入 href 链接。
是否可以通过 Javascript 的 CSS 删除 href?
我试过了:
<a class="no_print" href="javascript:printPreview()">Print Preview</a>
<script>
function printPreview() {
var aTags = document.getElementsByTagName('a');
var atl = aTags.length;
var i;
for (i = 0; i < atl; i++) {
aTags[i].href = '';
}
}
</script>
但它不起作用。
--编辑:找到解决方案后,这里有一个完整的例子--
<!DOCTYPE html>
<html><header>
<title>x</title>
<style>
@media print { .no_print { display: none; }
</style>
<script>
function printPreview()
{
var aTags = document.getElementsByTagName('a');
var atl = aTags.length;
var i;
for (i = 0; i < atl; i++) {
aTags[i].removeAttribute("href");
}
}
</script>
</head>
<body>
<a class="no_print" href="javascript:printPreview()">Print Preview</a>
<br>
<a href="http://example.com">link to somewhere</a>
<br>
<a>anchor but no link</a>
<br>
other text...
</body>
</html>
【问题讨论】:
-
把你的
.no_printcss 类放在@media print { ... }中 -
应该是
function printPreview() -
是的,在你的 CSS 中使用
@media print { .no_print { display: none; } }。不要为此使用 javascript。 -
因为它们链接到内部服务器。他们在必须点击打印预览的实际网站上看不到它吗?
标签: javascript html css