我构建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>
答案 0 :(得分:2)
你可以在JS下面试试
function printPreview() {
document.getElementsByTagName('body a').each(function(index, element) {
element.removeAttribute('href');
});
}
上面的代码将删除body内所有锚点的href属性。
答案 1 :(得分:1)
试试吧。那可能吗?
<强> HTML 强>
<a class="no_print" href="javascript:printPreview">Print Preview</a>
<强> JS 强>
function printPreview() {
document.getElementsByTagName('a').removeAttribute("href");
}
答案 2 :(得分:1)
以下是可以正常使用的代码。
<html>
<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].removeAttribute("href");**
}
}
</script>
</html>
答案 3 :(得分:0)
纯css解决方案:
@media print {
a:after {
display: none !important;
}
}