在特定页面重复打开PDF。 (即使滚动后)

时间:2012-03-25 09:50:09

标签: javascript jquery pdf

我在一周前问了一个类似的问题,但也许我没有说清楚这个问题。

此后我一直在努力寻找有效的方法,但没有成功。

使用所有常见浏览器的最新版本,我想显示在特定页面上打开的PDF。


使用Chrome - 符合我的要求: - )

按此按钮可打开第3页的PDF。 如果用户将pdf滚动到另一页,然后再次按下该按钮,则会在第3页再次打开PDF;

使用FF,IE或Safari

按此按钮可打开第3页的PDF。 如果用户将pdf滚动到另一个页面,然后重新按下该按钮则不会发生任何事情。


有没有人知道如何让所有最新浏览器的页面始终在第3页打开? 我非常乐意彻底改变我的方法,包括在必要时使用免费插件。

如果有人知道我想要做的事情只能在Chrome中完成,那么如果他们能告诉我,我将不胜感激。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Test for SO</title>
  <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
</head>

<body>
  <input id="test" value="Test" type="button" />
    <br />
  <iframe id="iFrame" width="500" height="600"></iframe>
</body>

</html>

<script type="text/javascript">
  $(function () {
    $("#test").click(function () {
      var fileName = "/PDFFiles/pages.pdf#page=3";
      $('#iFrame').attr("src", fileName);
    });
  });
</script>

4 个答案:

答案 0 :(得分:2)

这适用于Chrome

<A HREF="http://www.example.com/myfile.pdf#page=4">

要在所有浏览器中使用此功能,PDF has to be coded to open to a specific page. 这可以使用Adobe Acrobat完成。

答案 1 :(得分:1)

尝试使用Google的文档查看器,如下所示:

<iframe src="http://docs.google.com/gview?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true" style="width:100%; height:500px;" onload="javascript:this.contentWindow.location.hash='#:0.page.4';" frameborder="0"></iframe>

基本部分是onload功能,它会添加从零开始的索引页码以显示:

onload="javascript:this.contentWindow.location.hash='#:0.page.4';"

如果您需要一个按钮来重新加载iframe,只需更新iframe src(我认为这是最简单的方法,但我可能错了):

$('button').click(function(){
  $('iframe').attr("src", function() { 
    return this.src;
  });
});

答案 2 :(得分:0)

我的建议是将iframe src设置为其他内容,然后返回正确的文档。只在短时间内。

答案 3 :(得分:0)

您需要销毁并重新创建iframe节点本身。例如:

<input id="test" value="Test" type="button" />

<br />

<div id="wrapper"> 
 <!-- iframe will be continually destroyed and re-created here --> 
</div>


<script type="text/javascript">
    // Create the initial iframe on page load
    $('<iframe id="iFrame" width="500" height="600" src="/PDFFiles/pages.pdf">').appendTo('#wrapper');

    // Destroy and recreate iframe on button click, starting on your desired page.

    $("#test").click(function () {

     if($('#iFrame').length) { 
       $('#iFrame').remove(); 
     }

     var page = 3;
     $('<iframe id="iFrame" width="500" height="600" src="/PDFFiles/pages.pdf#page='+page+'">').appendTo('#wrapper');

    });

</script>​​​​​​​

注意:将会有一个时刻在第一页上再次加载PDF,但您可以将它隐藏在ajax加载器球下1-2秒,然后在您将其显示时将跳转到您想要的页面。