2014-01-10 80 views
1

我有一個js代碼,我加載了ajax但該代碼是用戶生成的,所以我無法控制代碼。例如用戶可以將代碼從某處加載js文件之前不執行JavaScript(異步)

$.post('url', null, function(data, textStatus, xhr) { 
     $('#someID').html(data) 
    }); 

RESPONSE波紋管

<!-- AddThis Smart Layers BEGIN --> 
    <!-- Go to http://www.addthis.com/get/smart-layers to customize --> 
    <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=xa-52cfba37486a2e20"></script> 
    <script type="text/javascript"> 
     addthis.layers({ 
     'theme' : 'transparent', 
     'share' : { 
      'position' : 'left', 
      'numPreferredServices' : 5 
     } 
     }); 
    </script> 
    <!-- AddThis Smart Layers END --> 

複製粘貼但是,當我加載此使用AJAX(.load()),我有上「前頁」的錯誤因爲腳本在加載addthis_widget.js之前運行。

此代碼僅僅是一個例子,所以我正在尋找一個全球性的解決方案。 你能幫我解決這個問題嗎?

+1

'$(document).ready(function(){ .... });' 這就是你想要的嗎? 如果您想稍後加載腳本,您可以(使用該.load),您可以將函數添加到'.load(function(){ });' –

+1

所有這些都發生在document.ready狀態之後。這不會幫助 – David

+0

我不完全清楚你的意思,但也許你可以把它包裝在一個函數中,這個函數在用戶點擊一個按鈕或者以某種方式調用之後調用? –

回答

0

AJAX.load方法有一個回調函數,它在加載完成時運行。

$(document).ready(function(){ 

$("#result").load("ajax/test.js", function(data){ 
//callback 
}); 

}); 

,或者你可以使用jQuery getScript加入方法

$.getScript("ajax/test.js") 
    .done(function(script, textStatus) { 
    console.log(textStatus); 
    }) 
    .fail(function(jqxhr, settings, exception) { 
    $("div.log").text("Triggered ajaxError handler."); 
}); 
+0

我不包括js文件,我加載可以包含js的html代碼。 – David

0

的document.ready(),這是非常簡單的

+0

我不包括js文件,我正在加載html代碼,其中可以包含js – David

0

您可以爲用戶提供了兩個領域的一個領域,他們可以粘貼鏈接.js文件,他們可以編寫或粘貼他們的js代碼,所以當你首先加載數據時,你會從第一個字段加載數據,我認爲這可能會起作用

+0

我不包括js文件,我正在加載可以包含js的html代碼 – David

0
<!-- AddThis Smart Layers BEGIN --> 
<script> 
$.getScript('http://s7.addthis.com/js/300/addthis_widget.js#pubid=xa-52cfba37486a2e20', function() { 
    // alert('Loaded!'); 
    addthis.layers({ 
     'theme': 'transparent', 
     'share': { 
      'position': 'left', 
      'numPreferredServices': 5 
     } 
    }); 
}); 
</script> 
<!-- AddThis Smart Layers END --> 
+0

我知道回調,但是所有代碼都由用戶生成並附加到通過ajax的dom我不知道名稱是什麼用戶粘貼 – David

+0

**我不知道名稱是什麼用戶粘貼**我不明白。但順便說一下,您可以用我的答案替換上面的默認AddThis JavaScript代碼以使其工作。 –

+0

噢,好的。我想我明白了。抱歉。 –