替换不是链接对象的特定于应用程序的URL

时间:2017-03-29 08:59:15

标签: javascript replace jira

Web应用程序(JIRA)不支持特定于应用程序的URL,而是支持JavaScript的集成。我想替换html页面上所有特定于应用程序的app://*链接字符串。

<div class="action-body flooded">
    <p>app://foo.bar?var1=param1</p>
</div>

目前我可以通过以下方式轻松完成:

function rewriteLinks() {
    var expression = /(app:\/\/[\w.,@?^=%&;:\/~+#-]+)/g;
    document.body.innerHTML = document.body.innerHTML.replace(expression, "<a href=\"$1\">$1</a>");
};

window.onload = function() {
    rewriteLinks();
}

示例html字符串:app://foo.bar?var1=param1

预期输出:<a href="app://foo.bar?var1=param1">app://foo.bar?var1=param1</a>并且不替换现有的标签

问题是在某些情况下app://链接已经是真正的HTML链接。链接的属性hrefinnerHTML将被代码替换。所以现有的链接将被打破。

是否有更强大的方法可以替换非app://链接(不包含a)对象?

0 个答案:

没有答案