2011-06-28 28 views
0

我首先會顯示警告/信息頁面,告訴他們被重定向用戶一個Firefox插件(鉻://localfilter/content/wait_page.html),然後重定向他們到他們的目的地。JavaScript,以便在歷史記錄中刪除的最後一個項目(火狐插件)

一切都很好。

的唯一的事情是,當/如果他們按後退按鈕他們看到「等待頁面」,反正是有從歷史記錄中刪除只是等待頁面,並留下一切的是什麼? 或者,如果這是不可能的,也許剛剛標誌另一個頁面替換等待頁面(因爲如果他們讀之後就被重定向並沒有任何反應......)

編輯:

// function to see if the banned URL is on the list, then redirect 
... 
window.stop(); // Totally stop the page from loading. 

          window.content.location.href = "chrome://quickfilter/content/wait_page.html"; 



          this.notificationBox(); 
          self.timervar = setTimeout(function() 
          { 
           self.main.redirectToAnotherUrl(); 
          }, 2505); 

... 


redirectToAnotherUrl: function() 
      { 


       window.content.location.href = self.mafiaafireFilterUrl; 
       self.timervar = setTimeout(function() 
          { 
           self.main.notificationBox(); 
          }, 2005); 


      } 

改變與替換:

redirectToAnotherUrl: function() 
      { 


       window.content.location.replace(self.mafiaafireFilterUrl); 
       self.timervar = setTimeout(function() 
          { 
           self.main.notificationBox(); 
          }, 2005); 


      } 

回答

7

我想最好的解決辦法是不從歷史記錄中刪除頁面,而不是將其添加在第一位。當你「重定向」到目標頁面時,你可能使用window.location.href = ...或類似的東西。相反,您應該使用window.location.replace(...),它將「替換」當前頁面而不創建其他歷史記錄條目。

+1

確實...網頁不允許擺弄用戶歷史是一件好事。 – Jan

+1

@Jan:現在的問題是關於Firefox的擴展和他們做訪問瀏覽歷史。但即使在那裏,它看起來並不像是有選擇地刪除條目是可能的,只有添加或替換最後條目的方法可用。 –

+0

嘿傢伙!感謝回覆!它不是爲我工作:(這是我使用'window.content.location.replace = // URL here' – Ryan