mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-17 19:51:42 +00:00
refactor MarkdownPreview & protocol must be defined in 'href' to open in browser
This commit is contained in:
@@ -52,7 +52,10 @@ function handleAnchorClick (e) {
|
|||||||
}
|
}
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
e.stopPropagation()
|
e.stopPropagation()
|
||||||
shell.openExternal(e.target.href)
|
let href = e.target.href
|
||||||
|
if (href.match(/^http:\/\/|https:\/\/|mailto:\/\//)) {
|
||||||
|
shell.openExternal(href)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function stopPropagation (e) {
|
function stopPropagation (e) {
|
||||||
@@ -117,22 +120,30 @@ export default class MarkdownPreview extends React.Component {
|
|||||||
|
|
||||||
addListener () {
|
addListener () {
|
||||||
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a:not(.lineAnchor)')
|
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a:not(.lineAnchor)')
|
||||||
|
var inputs = ReactDOM.findDOMNode(this).querySelectorAll('input')
|
||||||
|
|
||||||
for (var i = 0; i < anchors.length; i++) {
|
Array.prototype.forEach.call(anchors, anchor => {
|
||||||
anchors[i].addEventListener('click', handleAnchorClick)
|
anchor.addEventListener('click', handleAnchorClick)
|
||||||
anchors[i].addEventListener('mousedown', stopPropagation)
|
anchor.addEventListener('mousedown', stopPropagation)
|
||||||
anchors[i].addEventListener('mouseup', stopPropagation)
|
anchor.addEventListener('mouseup', stopPropagation)
|
||||||
}
|
})
|
||||||
|
Array.prototype.forEach.call(inputs, input => {
|
||||||
|
input.addEventListener('click', stopPropagation)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
removeListener () {
|
removeListener () {
|
||||||
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a:not(.lineAnchor)')
|
var anchors = ReactDOM.findDOMNode(this).querySelectorAll('a:not(.lineAnchor)')
|
||||||
|
var inputs = ReactDOM.findDOMNode(this).querySelectorAll('input')
|
||||||
|
|
||||||
for (var i = 0; i < anchors.length; i++) {
|
Array.prototype.forEach.call(anchors, anchor => {
|
||||||
anchors[i].removeEventListener('click', handleAnchorClick)
|
anchor.removeEventListener('click', handleAnchorClick)
|
||||||
anchors[i].removeEventListener('mousedown', stopPropagation)
|
anchor.removeEventListener('mousedown', stopPropagation)
|
||||||
anchors[i].removeEventListener('mouseup', stopPropagation)
|
anchor.removeEventListener('mouseup', stopPropagation)
|
||||||
}
|
})
|
||||||
|
Array.prototype.forEach.call(inputs, input => {
|
||||||
|
input.removeEventListener('click', stopPropagation)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
handleClick (e) {
|
handleClick (e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user