Javascript highlight.js代码中的链接
我用它在我的网站上显示代码。现在我想把突出显示的代码的一些部分添加到链接中。但是链接没有被处理并表示为代码 我的代码就是这样突出显示的:Javascript highlight.js代码中的链接,javascript,jquery,syntax-highlighting,highlight.js,Javascript,Jquery,Syntax Highlighting,Highlight.js,我用它在我的网站上显示代码。现在我想把突出显示的代码的一些部分添加到链接中。但是链接没有被处理并表示为代码 我的代码就是这样突出显示的: <xml attribute="value">My <a href="test.html">xml content</a> that should be clickable (link)</xml> 我认为当前代码的问题在于它使用jquery而不是.text()只需创建一个textNode并附加该节点,即可转义
<xml attribute="value">My <a href="test.html">xml content</a> that should be clickable (link)</xml>
我认为当前代码的问题在于它使用jquery而不是
.text()
只需创建一个textNode并附加该节点,即可转义任何文本。这对于显示用户提交的数据非常方便。但这确实意味着您的链接将显示为代码而不是HTML
为此,我们需要使用HTML,但它不会显示XML标记,因为浏览器认为它可能是HTML标记。因此,我们需要的是转义XML标记,然后将锚/链接保留为html代码。大概是
var code=var code='XMLCODEHERE'//假设这是来自ajax返回的数据
var escapedCode=代码.replace(/我遗漏了什么吗?似乎工作正常-。你能创建一堆代码吗,因为我创建了并链接了锚标记。我做错了吗?哦,但我正在显示的代码实际上是XML内容。所以我的问题太简单了。用一些元素替换“我应该可以单击的内容”。我现在修改这个问题…问题是什么mfirdaus的回答有问题吗?可能有一些改进,但看起来已经很好了。
<xml attribute="value">My content that should be clickable (link)</xml>
<script src="highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<pre><code id="myCode"><xml attribute="value">My <a href="test.html">content</a> that should be clickable (link)</xml></code></pre>
$.ajax({
url: 'GetCode',
data: {id: id},
dataType: 'json',
type: 'get',
cache: false,
success: function(node) {
$("#myCode").text(node.code);
$('#myCode').each(function(i, e) {
hljs.highlightBlock(e)
});
}
var code= var code='XMLCODEHERE' //let's say this is data from ajax return
var escapedCode=code.replace(/</g,"<") //rough escaping of code
//rough unescaping of anchors
var escapedCodeNotAnchor=escapedCode.replace(/<a /g,"<a ")
escapedCodeNotAnchor=escapedCodeNotAnchor.replace(/<\/a>/g,"</a>")
$("#myCode").html(escapedCodeNotAnchor) //instead of .(text)