1
0
mirror of https://github.com/axllent/mailpit.git synced 2025-06-15 00:05:15 +02:00

Fix: Prevent potential JavaScript errors caused by race condition

This commit is contained in:
Ralph Slooten
2024-08-04 17:10:28 +12:00
parent 4716c18d5f
commit 6baf13b25b

View File

@ -185,17 +185,19 @@ export default {
// delay 0.2s until vue has rendered the iframe content
window.setTimeout(() => {
let p = document.getElementById('preview-html')
if (p && typeof p.contentWindow.document.body != 'undefined') {
// make links open in new window
let anchorEls = p.contentWindow.document.body.querySelectorAll('a')
for (var i = 0; i < anchorEls.length; i++) {
let anchorEl = anchorEls[i]
let href = anchorEl.getAttribute('href')
if (p && typeof p.contentWindow.document.body == 'object') {
try {
// make links open in new window
let anchorEls = p.contentWindow.document.body.querySelectorAll('a')
for (var i = 0; i < anchorEls.length; i++) {
let anchorEl = anchorEls[i]
let href = anchorEl.getAttribute('href')
if (href && href.match(/^http/)) {
anchorEl.setAttribute('target', '_blank')
if (href && href.match(/^http/)) {
anchorEl.setAttribute('target', '_blank')
}
}
}
} catch (error) { }
this.resizeIFrames()
}
}, 200)
@ -208,7 +210,9 @@ export default {
resizeIframe(el) {
let i = el.target
i.style.height = i.contentWindow.document.body.scrollHeight + 50 + 'px'
if (typeof i.contentWindow.document.body.scrollHeight == 'number') {
i.style.height = i.contentWindow.document.body.scrollHeight + 50 + 'px'
}
},
resizeIFrames() {
@ -217,7 +221,9 @@ export default {
}
let h = document.getElementById('preview-html')
if (h) {
h.style.height = h.contentWindow.document.body.scrollHeight + 50 + 'px'
if (typeof h.contentWindow.document.body.scrollHeight == 'number') {
h.style.height = h.contentWindow.document.body.scrollHeight + 50 + 'px'
}
}
},