我希望能夠在某些頁面上禁用「history.go(-1)」。 我在想如果有一種方法來清理Javascript的歷史對象。想法? 「history.go()」在某些瀏覽器(例如IE)中看起來運行不佳。真的嗎?任何解決方案?禁用某些頁面上的「history.go(-1)」
回答
您可以通過寫的go
方法,但它不會讓你多
history.go = function(){};
這將禁用的history.go
所有用途,而不是隻當你通過一個-1
。
正如其他人指出的那樣 - 這不會阻止用戶使用其瀏覽器上的「後退」按鈕。
您無法重寫此瀏覽器行爲。如果可以的話,會有混亂,因爲惡意軟件會試圖接管每個人的歷史。
如果你想禁用瀏覽器返回按鈕,這根本是不可能的。如果網站可能會混淆瀏覽器的功能,您會喜歡嗎?
如果用戶啓用了JavaScript,則用戶可能很難返回。我用過這樣的網站。當他們這樣做時,我討厭它。 – Andy 2010-11-01 16:43:29
是的,我知道你的意思。通常快速點擊幾次就可以得到你想要的。我猜這是一箇中間頁面,返回適當的JavaScript和/或HTTP代碼轉發瀏覽器 – 2010-11-01 16:46:56
您可以做的最好的「禁用」歷史記錄是在新窗口中打開您的頁面,這將不會有歷史記錄。在新窗口中打開的頁面沒有啓用後退按鈕,並且history.go(-1)將不會執行任何操作。
簡而言之,沒有什麼可以(或應該)能夠做到。
修改,以明確暗示。我以爲我很清楚,但顯然我沒有。
Ctrl-H在任何窗口中打開歷史記錄 – 2010-11-01 16:34:35
@ m.edmondson:我意識到這一點,但打開頁面的新窗口沒有啓用後退按鈕,history.go(-1)不會執行任何操作。 – Robusto 2010-11-01 16:36:42
好點,如果你編輯你的答案,我會反過來投票 – 2010-11-01 16:45:30
你有兩種選擇。
加載帶有發佈請求的頁面,這將阻止用戶使用後退按鈕,因爲您可以在服務器端捕獲重新加載。 (你需要用js來包裝所有的超鏈接,所以有點工作,而且解決方案很難看)。
使用DOM將內容加載到頁面中。歷史將無法回溯。 (或我在這裏錯了: - |)
更清楚地描述你的問題,可能有更好的解決方案,你需要去哪裏。
我不明白第1點,你能詳細說明一下嗎? – 2010-11-01 16:52:33
在您的共享頁面頁眉將這個:
<body onLoad="history.forward()">
它總是強迫用戶,他們已經在您的網站訪問最近的頁面。
反對票的原因很好。 – 2010-11-01 17:39:48
這是醜陋的,但可能工作:
$(document).load(function(){
document.location.href = document.location.href + "#";
setInterval(function(){
if (window.location.hash != '#')
document.location.href = document.location.href + "#";
}, 100);
});
唉!
德斯蒙德,
我的老闆並不想後退按鈕就降落page.I工作,知道這是愚蠢的,但我能做些什麼。
如何使用默認頁面(index.php或其他)來指向前進。
的index.php:
header('location:start.html');
//or likewise with js,
document.location = 'start.html';
的start.html:
my real start
爲用戶點擊後退按鈕,在index.php將重做轉發。
問候,
感謝您的所有答覆。經過兩天的雜耍,我現在想出了這個解決方案。 如果當前頁面是首頁,我使用PHP向body標籤輸出一個類。像
<body class='front'>
,然後一些使用jQuery啓用/在飛行中禁止 「history.go(X)」。
$(document).ready(){
if($('body.front').length>0){
$('#backbutton').click(function(){ window.history.back(); });
}else{
$('#backbutton').unbind('click');
}
}
其實,我是工作的項目需要一個iframe裏面的網站停用觸發父窗口的後退按鈕的元素。 js變成:
var backbutton=parent.window.getElementById('#backbutton');
$(document).ready(){
if($('body.front').length>0){
$(backbutton).click(function(){ window.history.back(); });
}else{
$(backbutton).unbind('click');
}
}
- 1. 禁用某些頁面上的ScriptManager
- 2. 如何禁用某些頁面的UpdateProgress(在母版頁上)?
- 3. 爲某些頁面禁用HTTP GET php
- 4. 暫時禁止訪問某些頁面
- 5. Bootstrap - 在某些頁面上禁用響應功能
- 6. Android WebView - history.go(-1)
- 7. 僅在某些頁面上使用SSL?
- 8. 如何禁用某些HTML頁面上點擊右鍵有一些例外
- 9. History.go(-1)不工作的具有指向同一頁面
- 10. .htaccess某些頁面上的SSL
- 11. 某些頁面上的強制方向
- 12. .htaccess控制某些頁面上的HTTPS
- 13. 在某些頁面
- 14. 在Excel中的某些頁面上跳過頁腳頁面
- 15. 如何在asp.net中禁用某些頁面的CSS
- 16. 如何禁用其他頁面的某些代碼?
- 17. 如何禁用Joomla中某些文章的頁面元素
- 18. 當某些元素被佔用時禁用頁面滾動
- 19. 禁用用戶在某些情況下離開頁面(javascript)
- 20. Android:如何禁用某些特定頁面的webview上的鍵盤?
- 21. 如何禁用頁面上的某些條件的按鈕/鏈接php/html
- 22. 您可以禁用WordPress上某些頁面的響應式佈局嗎?
- 23. 在網站上隱藏某些頁面
- 24. 在某些頁面上未顯示
- 25. UIWebView ScalePagesToFit在某些頁面上?
- 26. fullpage.js只在某些頁面上
- 27. MoinMoin ACL在某些頁面上
- 28. jQuery在某些頁面上失敗
- 29. mysql_select_db在某些頁面上失敗
- 30. 在某些頁面上禁用離子型angularjs應用程序sidemenu
你在實現我的禁用功能嗎?用戶只需點擊後退按鈕 – 2010-11-01 16:25:10
我在HTML頁面中有一個
魔鬼還是什麼?如果用戶不想在您的網站上,不要試圖強迫他們成爲! – user359996 2010-11-01 18:39:12