JavaScript/jQuery のドラッグ可能なウィジェット マネージャーに取り組んでいます。現在、これはコンテナーを手動で移動し、ソート値を (PHP を介して) DB に保存するのにうまく機能しています。クライアントにさまざまな広告ゾーンを配置する簡単な方法として、これをまとめています。
問題は、ゾーンを移動しようとすると、ゾーン内に 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 のエラー コンソールでもテストしましたが、エラーは報告されません。
どんな提案でも大歓迎です!
ハンジ