如何存储javascript代码而不执行它?

时间:2011-12-15 18:59:43

标签: javascript jquery

我正在尝试使用jquery将adsense javascript代码添加到指定的div位置,但似乎javascript代码不能很好地放在jquery变量中。它执行。我已经尝试使用php的htmlentities对其进行编码以进行存储,但我无法自然地解码它。我该怎么办?我是否需要基于javascript的替换htmlentities_decode?

这是我已经走了多远,而.html()并没有自动解码htmlentities编码的html。

var html_1 = "<?php echo htmlentities('<script>adsense ad code here</script>'); ?>";
if (html_1)
{
    jQuery('#id_wpt_adblock_1').html(html_1);
}

3 个答案:

答案 0 :(得分:2)

看起来您可以将javascript代码放在自己的函数中,然后只需在需要时执行该函数即可。这听起来很明显,你必须已经取消了这个选项,但为什么呢?

答案 1 :(得分:1)

<script>标记添加到DOM时会自动执行。因此,当通过html()添加字符串时,<script>将添加到DOM,而不是运行。

此处的问题是字符串中的<script>标记。当浏览器看到它们时,它可能会尝试运行该脚本。尝试将字符串更改为:

var html_1 = "<?php echo '<scr"+"ipt>adsense ad code here</scr"+"ipt>'; ?>";

这应输出:

var html_1 = "<scr"+"ipt>adsense ad code here</scr"+"ipt>";

哪个应该有用。

编辑:你说这个字符串在变量中,尝试使用str_replace替换标记。

var html_1 = "<?php echo str_replace(array('<script>','</script>'), array('<scr"+"ipt>', '</scr"+"ipt>'), $_SESSION['wpt_ad_content_1']); ?>";

答案 2 :(得分:0)

document.write('<script src="your_script.js"><\/script>')</script>