41 lines
888 B
JavaScript
41 lines
888 B
JavaScript
function _registerEvent (target, eventType, cb) {
|
|
if (target.addEventListener) {
|
|
target.addEventListener(eventType, cb)
|
|
return {
|
|
remove: function () {
|
|
target.removeEventListener(eventType, cb)
|
|
}
|
|
}
|
|
} else {
|
|
target.attachEvent(eventType, cb)
|
|
return {
|
|
remove: function () {
|
|
target.detachEvent(eventType, cb)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
export function openUriWithTimeoutHack (uri, failCb, successCb) {
|
|
const timeout = setTimeout(function () {
|
|
failCb()
|
|
handler.remove()
|
|
}, 1500)
|
|
|
|
// handle page running in an iframe (blur must be registered with top level window)
|
|
let target = window
|
|
while (target != target.parent) {
|
|
target = target.parent
|
|
}
|
|
|
|
var handler = _registerEvent(target, 'blur', onBlur)
|
|
|
|
function onBlur () {
|
|
clearTimeout(timeout)
|
|
handler.remove()
|
|
successCb()
|
|
}
|
|
|
|
window.location = uri
|
|
}
|