显示/隐藏而不重新加载

时间:2016-08-27 16:10:50

标签: javascript jquery html pdf

我正在显示2个嵌入。嵌入有一个pdf的链接:

<div id="container" class="text-center">           
    <embed src="www.example.com/pdf1.pdf" width="550" height="800" type='application/pdf' id="mypdf1">
    <embed src="www.example.com/pdf2.pdf" width="550" height="800" type='application/pdf' id="mypdf2">
</div>

我还有2个按钮,一个用于显示嵌入,另一个用于隐藏嵌入。像这样:

<div class="button">
    <button class="btn-info" onclick="hide('thePdf2')" type="button">HIDE</button>
</div>
<div class="button">
    <button class="btn-info" onclick="show('thePdf2')" type="button">SHOW</button>
</div>

我使用以下函数来显示和隐藏嵌入:

<script> 
    function show(target) {
        document.getElementById(target).style.display = 'block';
    }
    function hide(target) {
        document.getElementById(target).style.display = 'none';
    }
</script>

我只显示并隐藏其中一个嵌入,我的问题是:Evertime我显示嵌入它重新加载pdf并转到pdf页面的顶部。每次我展示它时,我都不想重新加载pdf。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:7)

我没有在浏览器(Chrome)中重新加载PDF,因此我无法重现,但使用.visibility而不是.display可能会在您的浏览器中运行。

<script> 
    function show(target) {
        document.getElementById(target).style.visibility = 'visible';
    }
    function hide(target) {
        document.getElementById(target).style.visibility = 'hidden';
    }
</script>

答案 1 :(得分:0)

你也可以使用 .show()/。hide() Jquery函数。工作笨拙here。仅供参考,还添加了将选定的PDF加载到单<emded>中的演示。

/* toggle show hide of pdf */
$(document).on('click', '.pdf-container button', function(event){
    var $target = $(event.target);
    var $pdfViewer = $target.closest('.pdf-container').find('embed');

    if(!$pdfViewer){ return; }
    if($pdfViewer.is(':visible')){
        $pdfViewer.hide();
        $target.text('show');
        return;
    } 

    $pdfViewer.show();
    $target.text('hide');
});