2017-09-04 58 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); 

希望這適用於你。該代碼未經測試,可能有錯誤。

相關問題