|
@ -187,6 +187,9 @@ if (window.chrome) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var beforeLoadEvent = document.createEvent('Event'); |
|
|
|
|
|
beforeLoadEvent.initEvent('beforeload'); |
|
|
|
|
|
|
|
|
var linkHelper = document.createElement('a'); |
|
|
var linkHelper = document.createElement('a'); |
|
|
var onBeforeLoad = function(e, details) { |
|
|
var onBeforeLoad = function(e, details) { |
|
|
if (e.url && e.url.slice(0, 5) === 'data:') { |
|
|
if (e.url && e.url.slice(0, 5) === 'data:') { |
|
@ -274,8 +277,6 @@ if (window.chrome) { |
|
|
document.removeEventListener('DOMSubtreeModified', firstMutation, true); |
|
|
document.removeEventListener('DOMSubtreeModified', firstMutation, true); |
|
|
firstMutation = null; |
|
|
firstMutation = null; |
|
|
var randomEventName = parseInt(Math.random() * 1e15, 10).toString(36); |
|
|
var randomEventName = parseInt(Math.random() * 1e15, 10).toString(36); |
|
|
var beforeLoadEvent = document.createEvent('Event'); |
|
|
|
|
|
beforeLoadEvent.initEvent('beforeload'); |
|
|
|
|
|
|
|
|
|
|
|
window.addEventListener(randomEventName, function(e) { |
|
|
window.addEventListener(randomEventName, function(e) { |
|
|
var result = onBeforeLoad(beforeLoadEvent, e.detail); |
|
|
var result = onBeforeLoad(beforeLoadEvent, e.detail); |
|
@ -342,6 +343,21 @@ if (window.chrome) { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
window.addEventListener('contextmenu', onContextMenu, true); |
|
|
window.addEventListener('contextmenu', onContextMenu, true); |
|
|
|
|
|
|
|
|
|
|
|
window.addEventListener('mouseup', function(e) { |
|
|
|
|
|
if (e.button !== 1) { |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
e = document.evaluate('ancestor-or-self::a[@href]', e.target, null, 9, null).singleNodeValue; |
|
|
|
|
|
|
|
|
|
|
|
if (e && /^https?:$/.test(e.protocol)) { |
|
|
|
|
|
safari.self.tab.canLoad(beforeLoadEvent, { |
|
|
|
|
|
middleClickURL: e.href, |
|
|
|
|
|
timeStamp: Date.now() |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}, true); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
})(); |
|
|
})(); |