Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换不是';我还没有链接对象_Javascript_Replace_Jira - Fatal编程技术网

Javascript 替换不是';我还没有链接对象

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

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() {
    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锚。