2017-09-04 56 views
1

我有一个功能,我正在用它在浏览器的新选项卡中打开PDF。用户可能希望导航到一个比打开一个不同的页面,因此页面也可以通过功能更新:在新的浏览器选项卡中打开pdf的当前页码

openpdf: function(url, page, pageCount){ 
    try { 
    console.log('the page count is ' + pageCount); 
    var page = new Number(page) + new Number(pageCount);   
    if (mobileAndTabletcheck()){ 
     console.log('mobile detected'); 
     return window.open(url + '#page' + page, 'somename'); 
    } 
    console.log('no mobile detected') 
    return window.open(url + '#page=' + page, 'somename'); 
    } 
    catch(e){ 
    console.log(e) 
    } 
}, 

我遇到的问题是,当用户点击导航到新页面的pdf,URL用正确的页码进行更新,但查看器停留在最初打开的页面上。

有谁知道如何在URL更新时进行当前页面更新吗?

+0

你的问题有点混乱,无论如何我回答了。如果这不是你想要的,请让你的问题更清楚。 –

+0

根据你的问题,你的意思是在url更改后不调用openpdf函数? –

回答

2

您可以使用本地存储作为位置来跟踪打开的文档。我相信PDF查看器和主页保持在同一个域中。所以你可以尝试这样的事情。

openpdf: function(url, page, pageCount){ 
try { 
console.log('the page count is ' + pageCount); 
var page = new Number(page) + new Number(pageCount);   
if (mobileAndTabletcheck()){ 
    console.log('mobile detected'); 
    return window.open(url + '#page' + page, 'somename'); 
} 
console.log('no mobile detected') 
return window.open(url + '#page=' + page, 'somename'); 
} 
catch(e){ 
console.log(e) 
} 
var openedLinks = JSON.parse(localStorage.getItem("links")); 
openedLinks.push("Your URL here"); 
localStorage.setItem("links", JSON.stringify(names)); 
} 

在pdf查看器页面上,只需更新本地存储。

onpageChanged : function(){ 
    var openedLinks = JSON.parse(localStorage.getItem("links")); 
    var index = items.indexOf("Your current Url"); 
    if (index !== -1) { 
     openedLinks[index] = "Your updated URL"; 
    } 
    localStorage.setItem("links", JSON.stringify(names)); 
    } 

最后在主页上使用类似定时器的东西来跟踪打开的链接。

setInterval(function(){ 
    var openedLinks = JSON.parse(localStorage.getItem("links")); 
    $("#someDiv").html(openedLinks.join(",")); 
    },1000); 

希望这适用于你。该代码未经测试,可能有错误。

相关问题