我正在研究JavaScript/jQuery可拖動小部件管理器。目前,這對於手動移動容器並將排序值保存到數據庫(通過PHP)非常有效。我將它們放在一起,以便爲客戶定位各種廣告區域。如何在jQuery變量中實現JavaScript?
現在的問題是,當我試圖移動我的區域時,jQuery在區域內存在JavaScript廣告代碼時發生故障。失敗的關鍵是當我試圖選擇類容器來獲取區域的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中使用錯誤控制檯進行測試,並且不報告任何錯誤。
任何建議,非常感謝!
韓紙
umm你先串接字符串,當你完成後,你使用document.write一次 – Ibu 2012-07-25 20:01:52
我沒有關注..你能解釋一下嗎?在$('。dragbox',this)之後連接整個廣告代碼部分.each(function(i){? – hanji 2012-07-25 20:37:49
看起來故障的關鍵在於廣告代碼中的document.write()。刪除這些應用程序工作正常張貼到數據庫 – hanji 2012-07-25 21:57:09