2016-12-09 86 views
0

反正有防止或取消電子頁面導航嗎?電子:防止/取消頁面導航

win.webContents.on('did-start-loading', function(event, url) { 
    if (event.sender.getURL().startsWith('http://xyz')) { 
     event.preventDefault(); 
    } 
}) 

上面的代碼不起作用,因爲事件處理程序在頁面繼續導航時被執行。

同樣,我也想爲事件'did-get-redirect-request'做同樣的事情,以防止發生某些重定向。

非常感謝

回答

1

可以使用will-navigate情況下,停止導航。

您也可以使用webRequest.onBeforeRequest()防止請求(包括重定向):

const {session} = require('electron') 
const ses = session.defaultSession 
const urlToBlock = 'whatever' 
ses.webRequest.onBeforeRequest((details, callback) => { 
if (details.url === urlToBlock) // cancel the request 
    callback({ cancel: true }) 
else // let the request happen 
    callback({}) 
}) 

如果你想阻止所有重定向,你可以添加一個偵聽webRequest.onBeforeRedirect()和重定向URL添加到阻止的URL列表,你然後可以檢入您添加到webRequest.onBeforeRequest()的聽衆。