Electron: рдпреВрдЖрд░рдПрд▓ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рд╣реЛрдиреЗ рдкрд░ рд╡реЗрдмрд╡реНрдпреВ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдЬрдире░ 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: electron/electron

рдирдорд╕реНрддреЗ,
рдореИрдВрдиреЗ рд╡рд┐рд▓-рдиреЗрд╡рд┐рдЧреЗрдЯ рдЗрд╡реЗрдВрдЯ (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);
 });

рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде, рдЬрдм рдореИрдВ рд╡реЗрдмрд╡реНрдпреВ рдкрд░ рдпреВрдЖрд░рдПрд▓ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗрдмрд╡реНрдпреВ рдирдП рдкреЗрдЬ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рдирдпрд╛ рдкреЗрдЬ рджрд┐рдЦрд╛рддреЗ рд╣реБрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рднреА рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗрдмрд╡реНрдпреВ рдирдП рдкреЗрдЬ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдпреВрдЖрд░рдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрдк рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкреНрд░реАрд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛:

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

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

#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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

christiangenco picture christiangenco  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cniaulin picture cniaulin  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maxogden picture maxogden  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

PhilAndrew picture PhilAndrew  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rhnorskov picture rhnorskov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ