gpt4 book ai didi

php - 如何在 jQuery 变量中转义 JavaScript?

转载 作者:行者123 更新时间:2023-11-29 14:21:42 27 4
gpt4 key购买 nike

我正在开发一个 JavaScript/jQuery 可拖动小部件管理器。目前,这对于手动移动容器并将排序值保存到数据库(通过 PHP)非常有效。我将其组合在一起,以一种简单的方式为客户定位各种广告区域。

现在的问题是,当我尝试移动我的区域时,如果区域内存在 JavaScript 广告代码,jQuery 就会崩溃。失败点是当我尝试选择类容器来获取区域的 id 时。

 var items=[];  
$('.column').each(function(){
var columnId=$(this).attr('id');
$('.dragbox', this).each(function(i){
var item={
id: $(this).attr('id'),
collapsed: 0,
order : i,
column: columnId
};
//Push item object into items array
items.push(item);
});
});

创建此数组后,它通过 JSON 传递到我的更新脚本。问题是,当我有广告服务器代码时,数组中没有创建任何内容。以下是其外观示例 (HTML)

<div class="dragbox" id="item1">
<h2><span class="configure" ><a href="#" >Configure</a></span>Handle 1</h2>
<div class="dragbox-content" >
<!-- Panel Content Here -->
<script type='text/javascript'><!--//<![CDATA[
var m3_u = (location.protocol=='https:'?'https://ads.mytestsite.com/_ads/delivery/ajs.php':'http://ads.mytestsite.com/_ads/delivery/ajs.php');
var m3_r = Math.floor(Math.random()*99999999999);
if (!document.MAX_used) document.MAX_used = ',';
document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
document.write ("?zoneid=24");
document.write ('&cb=' + m3_r);
if (document.MAX_used != ',') document.write ("&exclude=" + document.MAX_used);
document.write (document.charset ? '&charset='+document.charset : (document.characterSet ? '&charset='+document.characterSet : ''));
document.write ("&loc=" + escape(window.location));
if (document.referrer) document.write ("&referer=" + escape(document.referrer));
if (document.context) document.write ("&context=" + escape(document.context));
if (document.mmm_fo) document.write ("&mmm_fo=1");
document.write ("'><\/scr"+"ipt>");
//]]>--></script><noscript><a href='http://ads.mytestsite.com/_ads/delivery/ck.php?n=a7d957c0&cb=&n=a7d957c0' border='0' alt='' /></a></noscript>

</div>
</div>

如果我删除 '<script type='text/javascript'>'事情似乎进展顺利。我用 < / > ' " ! -- [ 做了一些测试字符和那些似乎都很好。

正如你所看到的,我只是想获取类容器的 id 并将其传递给 JSON,但内容就在这个容器内,我认为这让事情变得很糟糕。我还在 Firefox 中使用错误控制台进行了测试,它没有报告任何错误。

非常感谢任何建议!

汉字

最佳答案

每当浏览器遇到 </script>在 JavaScript 解释过程中,即使它是在字符串中,它也会将其视为结束标记。

相关问题:Script tag in JavaScript string

A commonly used technique is to use the concatenation operator:

var test = '...... </scr'+'ipt>......';

关于php - 如何在 jQuery 变量中转义 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com