рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рд╡рд┐рд▓-рдиреЗрд╡рд┐рдЧреЗрдЯ рдЗрд╡реЗрдВрдЯ (https://github.com/atom/electron/blob/master/docs/api/web-view-tag.md) рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рдХреНрдп рдХреЛ рджреЗрдЦрд╛ред
рдХреЙрд▓рд┐рдВрдЧ event.preventDefault() рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИред
рддреЛ рд╣рдо рд╡реЗрдмрд╡реНрдпреВ рдХреЛ рджреВрд╕рд░реЗ рдкреЗрдЬ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ? рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реЗрдмрд╡реНрдпреВ рдкрд░ рдпреВрдЖрд░рдПрд▓ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВред
рдпрд╣рд╛рдБ рд░реЗрдВрдбрд░рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рдореЗрд░рд╛ рдХреЛрдб рд╣реИред
webview.addEventListener('will-navigate', function(e) {
e.preventDefault();
require('electron').shell.openExternal(e.url);
});
рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдЬрдм рдореИрдВ рд╡реЗрдмрд╡реНрдпреВ рдкрд░ рдпреВрдЖрд░рдПрд▓ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗрдмрд╡реНрдпреВ рдирдП рдкреЗрдЬ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдирдпрд╛ рдкреЗрдЬ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рднреА рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗрдмрд╡реНрдпреВ рдирдП рдкреЗрдЬ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗред
#1378 рдХрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯред
рдореБрдЭреЗ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ?
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдпреВрдЖрд░рдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрдк рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░реАрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛:
document.addEventListener('DOMContentLoaded', function () {
document.addEventListener('click', function (e) {
e.preventDefault();
e.stopPropagation();
setTimeout(function () {
var path = e.target.href;
ipcRenderer.sendToHost('element-clicked', path);
}, 100);
return false;
}, true);
});
рдХреГрдкрдпрд╛ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ document.addEventListener('click', fn, true)
. рдкрд░ рдиреЛрдЯ рдХрд░реЗрдВ
рд░реЗрдлрд░реА: https://stackoverflow.com/questions/6157486/jquery-trap-all-click-events-before-the-happen/6157660#6157660
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдпреВрдЖрд░рдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрдк рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░реАрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛:
рдХреГрдкрдпрд╛ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ
document.addEventListener('click', fn, true)
. рдкрд░ рдиреЛрдЯ рдХрд░реЗрдВрд░реЗрдлрд░реА: https://stackoverflow.com/questions/6157486/jquery-trap-all-click-events-before-the-happen/6157660#6157660