据我所知,每当我使用“嵌入代码”将包含模式/</*
的Java脚本插入Weebly页面时,都会在发布页面上将其替换为/<\/*
。
例如,此代码:
<script type="text/javascript">
var hljs=new function(p){return p.replace(/</gm, "<"}
</script>
当我在浏览器中检查最终页面时,显示如下:
<script type="text/javascript">
var hljs=new function(p){return p.replace(/<\/gm, "<"}
</script>
这是一个问题,因为它似乎搞砸了正则表达式,这些正则表达式旨在对我在页面上显示的代码进行语法突出显示。我正在使用从R Markdown生成的html + Javascript。当我在浏览器中打开html文件时,它们看起来不错,但是当我查看放置在weebly上的版本时,没有语法突出显示,并且出现SyntaxError(Chrome中为
Invalid regular expression flags
,FireFox中为unmatched ) in regular expression
)。如果查看源代码,唯一的区别是多余的反斜杠。有人有解决方法吗?
更新:原来这是另一个问题的征兆。当Rmarkdown生成html时,它包含一个
<head></head>
块。重要的是要进入页面的实际标题。像我之前所做的那样,将整个内容粘贴到“嵌入代码”框中,将所有内容都推到了体内。因此,真正的解决方案是转到“设计”选项卡,并将Rmarkdown标头代码添加到与您正在使用的页面布局相对应的文件的标头中。 最佳答案
您可以尝试使用new RegExp(string, flags);
语法。<script type="text/javascript"> var hljs=new function(p){return p.replace(new RegExp("<", "gm"), "<"}</script>
这样可以避免Weebly强迫角色逃脱。