在转发斜杠之前,Weebly在我的javascript中插入反斜杠

时间:2015-09-28 04:24:58

标签: javascript html r-markdown weebly

据我所知,每当我使用&#34;嵌入代码&#34;将包含模式/</*的Javascript插入Weebly页面时,它就会被/<\/*替换为已发布页。

例如,这段代码:

<script type="text/javascript">
    var hljs=new function(p){return p.replace(/</gm, "&lt;"}
</script>

当我在浏览器中检查最终页面时,显示如下:

<script type="text/javascript">
    var hljs=new function(p){return p.replace(/<\/gm, "&lt;"}
</script>

这是一个问题,因为它似乎搞砸了正则表达式,这些表达式旨在对页面上显示的代码I进行语法突出显示。我使用从R Markdown生成的html + Javascript。当我在浏览器中打开html文件时,它们看起来很好,但是当我看到我轻松放置的版本时,没有语法突出显示,我在Chrome中得到一个SyntaxError(Invalid regular expression flagsunmatched ) in regular expression在FireFox中)。如果我查看源,唯一的区别是额外的反斜杠。

任何人都有解决方法吗?

更新:原来这是一个不同问题的症状。当Rmarkdown生成html时,它包含<head></head>块。进入页面的实际标题非常重要。将整个内容粘贴到&#34;嵌入代码&#34;盒子,就像我在做的那样,将一切都塞进了身体。因此,真正的解决方案是转到设计选项卡并将Rmarkdown标题代码添加到与您正在使用的页面布局相对应的文件的标题中。

1 个答案:

答案 0 :(得分:1)

您可以尝试new RegExp(string, flags);语法。

<script type="text/javascript"> var hljs=new function(p){return p.replace(new RegExp("<", "gm"), "&lt;"} </script>

这可能会避免Weebly强制角色逃脱。