Externalize links sent in chat
This commit is contained in:
parent
15ebc42bd3
commit
b02ad52f8f
|
@ -669,6 +669,9 @@ const app = Vue.createApp({
|
||||||
|
|
||||||
// Responsive CSS: switch back to chat panel upon selecting a channel.
|
// Responsive CSS: switch back to chat panel upon selecting a channel.
|
||||||
this.openChatPanel();
|
this.openChatPanel();
|
||||||
|
|
||||||
|
// Edit hyperlinks to open in a new window.
|
||||||
|
this.makeLinksExternal();
|
||||||
},
|
},
|
||||||
hasUnread(channel) {
|
hasUnread(channel) {
|
||||||
if (this.channels[channel] == undefined) {
|
if (this.channels[channel] == undefined) {
|
||||||
|
@ -957,6 +960,9 @@ const app = Vue.createApp({
|
||||||
this.channels[channel].unread++;
|
this.channels[channel].unread++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Edit hyperlinks to open in a new window.
|
||||||
|
this.makeLinksExternal();
|
||||||
},
|
},
|
||||||
|
|
||||||
scrollHistory() {
|
scrollHistory() {
|
||||||
|
@ -1088,6 +1094,19 @@ const app = Vue.createApp({
|
||||||
// Store the user's setting in localStorage.
|
// Store the user's setting in localStorage.
|
||||||
localStorage[`sound:${event}`] = this.config.sounds.settings[event];
|
localStorage[`sound:${event}`] = this.config.sounds.settings[event];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
makeLinksExternal() {
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
let $history = document.querySelector("#chatHistory");
|
||||||
|
// Make all <a> links appearing in chat into external links.
|
||||||
|
($history.querySelectorAll("a") || []).forEach(node => {
|
||||||
|
let href = node.attributes.href,
|
||||||
|
target = node.attributes.target;
|
||||||
|
if (href == undefined || target != undefined) return;
|
||||||
|
node.target = "_blank";
|
||||||
|
});
|
||||||
|
})
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user