summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--webapp/utils/markdown.jsx6
-rw-r--r--webapp/utils/text_formatting.jsx8
2 files changed, 10 insertions, 4 deletions
diff --git a/webapp/utils/markdown.jsx b/webapp/utils/markdown.jsx
index 6691b57b2..b128bd3e8 100644
--- a/webapp/utils/markdown.jsx
+++ b/webapp/utils/markdown.jsx
@@ -149,13 +149,13 @@ class MattermostMarkdownRenderer extends marked.Renderer {
outHref = `http://${outHref}`;
}
- let output = '<a class="theme markdown__link" ';
+ let output = '<a class="theme markdown__link" href="' + outHref + '" rel="noreferrer"';
// special case for links that are inside the app
if (outHref.startsWith(global.location.origin)) {
- output += 'data-link="' + outHref.substring(global.location.origin.length) + '"';
+ output += ' data-link="' + outHref.substring(global.location.origin.length) + '"';
} else {
- output += 'href="' + outHref + '" target="_blank" rel="noreferrer"';
+ output += ' target="_blank"';
}
if (title) {
diff --git a/webapp/utils/text_formatting.jsx b/webapp/utils/text_formatting.jsx
index 21bfe5333..cc4a24d19 100644
--- a/webapp/utils/text_formatting.jsx
+++ b/webapp/utils/text_formatting.jsx
@@ -450,7 +450,13 @@ export function handleClick(e) {
} else if (hashtagAttribute) {
Utils.searchForTerm(hashtagAttribute.value);
} else if (linkAttribute) {
- browserHistory.push(linkAttribute.value);
+ const MIDDLE_MOUSE_BUTTON = 1;
+
+ if (!(e.button === MIDDLE_MOUSE_BUTTON || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) {
+ e.preventDefault();
+
+ browserHistory.push(linkAttribute.value);
+ }
}
}