1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-24 10:27:10 +02:00

Electron: Handle internal anchors

This commit is contained in:
Laurent Cozic 2018-10-17 08:01:18 +01:00
parent c72f92e22f
commit dfcf1193dc
3 changed files with 27 additions and 13 deletions

View File

@ -1,20 +1,20 @@
function randomClipperPort(state, env) { function randomClipperPort(state, env) {
const startPorts = { const startPorts = {
prod: 41184, prod: 41184,
dev: 27583, dev: 27583,
}; };
const startPort = env === 'prod' ? startPorts.prod : startPorts.dev; const startPort = env === 'prod' ? startPorts.prod : startPorts.dev;
if (!state) { if (!state) {
state = { offset: 0 }; state = { offset: 0 };
} else { } else {
state.offset++; state.offset++;
} }
state.port = startPort + state.offset; state.port = startPort + state.offset;
return state; return state;
} }
module.exports = randomClipperPort; module.exports = randomClipperPort;

View File

@ -595,6 +595,8 @@ class NoteTextComponent extends React.Component {
} else { } else {
require('electron').shell.openExternal(msg); require('electron').shell.openExternal(msg);
} }
} else if (msg.indexOf('#') === 0) {
// This is an internal anchor, which is handled by the WebView so skip this case
} else { } else {
bridge().showErrorMessageBox(_('Unsupported link or message: %s', msg)); bridge().showErrorMessageBox(_('Unsupported link or message: %s', msg));
} }

View File

@ -276,12 +276,24 @@
} }
}); });
// Prevent URLs added via <a> tags from being opened within the application itself
document.addEventListener('click', function(event) { document.addEventListener('click', function(event) {
const t = event.target; const t = event.target;
// Prevent URLs added via <a> tags from being opened within the application itself
if (t && t.nodeName === 'A' && !t.hasAttribute('data-from-md')) { if (t && t.nodeName === 'A' && !t.hasAttribute('data-from-md')) {
event.preventDefault(); event.preventDefault();
ipcProxySendToHost(t.getAttribute('href')); ipcProxySendToHost(t.getAttribute('href'));
return;
}
// IF this is an internal link, jump to the anchor directly
if (t && t.nodeName === 'A' && t.hasAttribute('data-from-md')) {
const href = t.getAttribute('href');
if (href.indexOf('#') === 0) {
event.preventDefault();
location.hash = href;
return;
}
} }
}); });