2014-06-19 3 views
3

HTML 페이지를 작성하고 HREF 링크를 내장하지 않고 사용자가 "HTML"을 PDF로 "인쇄"하도록하고 싶습니다. (내부 서버에 링크되어 있기 때문에 PDF의 독자가이를 볼 수 없기를 바랍니다. 모래밭).html을 PDF로 인쇄하는 href를 제거하는 방법은 무엇입니까?

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> 
+1

그것은 아마해야 당신의'.no_print' CSS 클래스 내부에'@media 인쇄 {...}' –

+1

을 넣어'기능 printPreview()' – putvande

+2

예 사용 '@media print {.no_print {display : none; }}'당신의 CSS에. 이것을 위해 자바 스크립트를 사용하지 마십시오. – Pricey

답변

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> 
1

해보십시오 STH. 그게 어때?

HTML

<a class="no_print" href="javascript:printPreview">Print Preview</a> 

JS

function printPreview() { 
    document.getElementsByTagName('a').removeAttribute("href"); 
} 
+0

귀하의 답변으로 인해 해결책이 생겼지 만 user3752326이 더 정확하게 대답했습니다 – user803422

2

당신은 신체 내부의 모든 앵커 href 속성을 제거 JS

function printPreview() { 
    document.getElementsByTagName('body a').each(function(index, element) { 
    element.removeAttribute('href'); 
    }); 
} 

위의 코드를 아래에 시도 할 수 있습니다.

+0

jquery를 사용하지 않습니다 – user803422

+0

시도하십시오. –

0

순수 CSS의 솔루션 :

@media print { 
    a:after { 
     display: none !important; 
    } 
} 
관련 문제