2016-12-09 15 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()に追加します。

関連する問題