Javascript 替换不是';我还没有链接对象
web应用程序(JIRA)不支持特定于应用程序的URL,而是支持JavaScript的集成。我想替换html页面上所有特定于应用程序的Javascript 替换不是';我还没有链接对象,javascript,replace,jira,Javascript,Replace,Jira,web应用程序(JIRA)不支持特定于应用程序的URL,而是支持JavaScript的集成。我想替换html页面上所有特定于应用程序的app://*链接字符串 <div class="action-body flooded"> <p>app://foo.bar?var1=param1</p> </div> app://foo.bar?var1=param1 目前,我可以通过以下方式轻松实现: function rewriteLinks
app://*
链接字符串
<div class="action-body flooded">
<p>app://foo.bar?var1=param1</p>
</div>
app://foo.bar?var1=param1
目前,我可以通过以下方式轻松实现:
function rewriteLinks() {
var expression = /(app:\/\/[\w.,@?^=%&;:\/~+#-]+)/g;
document.body.innerHTML = document.body.innerHTML.replace(expression, "<a href=\"$1\">$1</a>");
};
window.onload = function() {
rewriteLinks();
}
函数重写链接(){
变量表达式=/(app:\/\/[\w,@?^=%&;:\/~+\-]+)/g;
document.body.innerHTML=document.body.innerHTML.replace(表达式“”);
};
window.onload=函数(){
重写链接();
}
html字符串示例:app://foo.bar?var1=param1
预期输出:
,不替换现有的a标记
问题是,在某些情况下,app://链接已经是真正的html链接。链接的属性href
和innerHTML
将被代码替换。因此,现有的链接将被破坏
是否有更可靠的方法来替换非app://链接(不被
a
包围)对象?您在那里替换什么?这些URL只是纯文本吗?一般来说,我会说,不要玩弄innerHTML
,但目前我不知道您的标记中到底有什么,以及您希望如何替换它。@Thomas谢谢您的评论。我添加了一个预期的输出。变得更清楚了?我知道我不应该操纵(所有)页面内容。就我所见,没有其他选项可以为非http链接实现此功能。已请求实施…好的,请阅读通知单。所以问题是有些链接被正确转换,而另一些链接没有?因为您提到了已经在HTML中解析和构建/呈现的节点的问题。“你能添加你正在处理的实际HTML标记吗,因为上下文很重要。”托马斯添加了一个片段。当然,上下文很重要。代码应该替换所有特定的URL(app://
),而不是真正的html锚。