1
0
mirror of https://github.com/hotomoe/hotomoe synced 2024-11-29 07:18:13 +09:00
This commit is contained in:
MeiMei 2020-02-20 00:38:26 +09:00 committed by GitHub
parent e6c9b1d9bd
commit 3f83beedb7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -51,6 +51,7 @@ export default Vue.extend({
target: self ? null : '_blank',
showTimer: null,
hideTimer: null,
checkTimer: null,
preview: null,
faExternalLinkSquareAlt
};
@ -78,9 +79,14 @@ export default Vue.extend({
}).$mount();
document.body.appendChild(this.preview.$el);
this.checkTimer = setInterval(() => {
if (!document.body.contains(this.$el)) this.closePreview();
}, 1000);
},
closePreview() {
if (this.preview) {
clearInterval(this.checkTimer);
this.preview.destroyDom();
this.preview = null;
}

View File

@ -8,9 +8,11 @@ export default {
self.tag = null;
self.showTimer = null;
self.hideTimer = null;
self.checkTimer = null;
self.close = () => {
if (self.tag) {
clearInterval(self.checkTimer);
self.tag.close();
self.tag = null;
}
@ -37,6 +39,10 @@ export default {
self.hideTimer = setTimeout(self.close, 500);
});
self.checkTimer = setInterval(() => {
if (!document.body.contains(el)) self.close();
}, 1000);
document.body.appendChild(self.tag.$el);
};
@ -62,6 +68,7 @@ export default {
const self = el._userPreviewDirective_;
clearTimeout(self.showTimer);
clearTimeout(self.hideTimer);
clearInterval(self.checkTimer);
self.close();
}
};