我正在尝试使用jQuery插件在This Demo突出显示我的代码段,但浏览器假设
<pre class="php">
<?php
echo "My first PHP script!";
?>
</pre>
是最初的PHP代码!现在解决方案正在取代所有&lt;与<
和&gt;与>
在<pre class="php"></pre>
现在,请您告诉我如何使用jQuery替换所有&lt;和&gt;在加载页面之前,使用<
和>
内的字符?
由于
答案 0 :(得分:1)
因此,您获得了带有<?
标记的数据,最好是将代码服务器端的输出替换为<
和>
,但如果您要查找脏js解决方案,那么将是:
$('.php').each(function() {
var $this=$(this);
$this.text($this.html().replace(/\<\!--\?([\s\S]*?)-->/g,'<?$1>'));
});
http://jsfiddle.net/oceog/x974w2d9/
我不记得是否有任何浏览器将<?
替换为<!--?
但Chrome确实替换了{{1}}。如果您有一些随机示例,例如:http://jsfiddle.net/oceog/x974w2d9/2/。
答案 1 :(得分:0)
现在,请您告诉我如何使用jQuery替换所有&lt;和&gt; with&lt;中的字符和&gt;在加载页面之前?
问题在于这个问题背后的假设。您无法使用jQuery在页面加载之前进行此操作,因为jQuery在页面在浏览器中加载后执行。所以你的PHP正在执行,所有jQuery都会看到:
<pre class="php">
My first PHP script!
</pre>
您需要确保字符串使其成为输出而不是执行。这样的事情应该有效:
<pre class="php">
<?php
$snippet = <<<EOT
<?php
echo "My first PHP script!";
?>
EOT;
echo $snippet;
?>
</pre>