1

有沒有辦法讓我的瀏覽器(Chrome)無法返回/轉發/刷新?在OWN瀏覽器中禁用刷新/返回/轉發

這種情況經常發生,當我在devtools開發和玩耍時(改變HTML和CSS只是爲了嘗試一下)我有時不小心刷回或退出習慣刷新。我希望能夠通過某種擴展禁用後退或前進按鈕?

我不想禁用任何實時網站上的按鈕,只爲我本地。有任何想法嗎?

回答

6

如果您想防止意外導航,則無需安裝任何擴展。只需打開控制檯,然後運行以下代碼:

window.onbeforeunload = function() { 
    return 'Want to unload?'; 
}; 

使用此代碼,您將收到確認提示。


如果你真的想阻止該網頁通過擴展卸載,請在答案How to cancel webRequest silently in chrome extension描述的技術。

這是一個最小的演示擴展,它爲您的瀏覽器添加了一個按鈕。點擊後,您無法再導航到其他頁面。您仍然可以關閉該選項卡沒有任何警告,雖然:

// background.js 
chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.webRequest.onBeforeRequest.addListener(function(details) { 
     var scheme = /^https/.test(details.url) ? 'https' : 'http'; 
     return { redirectUrl: scheme + '://robwu.nl/204' }; 
     // Or (seems to work now, but future support not guaranteed): 
     // return { redirectUrl: 'javascript:' }; 
    }, { 
     urls: ['*://*/*'], 
     types: ['main_frame'], 
     tabId: tab.id 
    }, ['blocking']); 
}); 

的manifest.json這個擴展:

{ 
    "name": "Never unload the current page any more!", 
    "version": "1", 
    "manifest_version": 2, 
    "background": { 
     "scripts": ["background.js"], 
     "persistent": true 
    }, 
    "browser_action": { 
     "default_title": "" 
    }, 
    "permissions": [ 
     "<all_urls>", 
     "webRequest", 
     "webRequestBlocking" 
    ] 
} 
+0

不要忘記,如果需要解除綁定。在關閉fancybox模式後發現它很有用。 'window.onbeforeunload = null;' – TheRealJAG