feat: MdWidget/MarkdownViewer外链新窗口打开(非同源链接不再被拦截成站内跳转)

This commit is contained in:
yumoqing 2026-08-29 15:00:18 +08:00
parent 9f05e56d93
commit 47b08371aa

View File

@ -51,8 +51,17 @@ bricks.MdWidget = class extends bricks.JsWidget {
this.dom_element.innerHTML = marked.parse(this.md_content);
/* change links in markdown to a bricks action */
var links = this.dom_element.getElementsByTagName('a');
var host = location.origin;
for (var i=0; i<links.length; i ++){
var url = links[i].href;
/* http/https
references 来源可查证招标原文/政府网站等 */
if (/^https?:\/\//i.test(url) && url.indexOf(host) !== 0){
links[i].target = '_blank';
links[i].rel = 'noopener noreferrer';
links[i].onclick = null;
continue;
}
links[i].href = '#';
links[i].onclick=this._build.bind(this, url);
}
@ -150,8 +159,15 @@ bricks.MarkdownViewer = class extends bricks.VBox {
/* change links in markdown to a bricks action */
var links = this.md_el.getElementsByTagName('a');
var host = location.origin;
for (var i=0; i<links.length; i ++){
var url = links[i].href;
if (/^https?:\/\//i.test(url) && url.indexOf(host) !== 0){
links[i].target = '_blank';
links[i].rel = 'noopener noreferrer';
links[i].onclick = null;
continue;
}
links[i].href = '#';
links[i].onclick=this._build.bind(this, url);
}