[英]Calling function defined in jquery ajax response
我正在對test.php內的php頁面('test.php')進行ajax請求是
<script type="text/javascript">
function test() {
alert('test');
}
</script>
<div id="abc">some normal content too</div>
現在,此功能對於每個頁面加載都是唯一的,即它是通過php生成的,用於執行不同的操作
因此,我的問題是如何調用該函數test();。
正如jquery認為響應只是文本,所以它不會評估它
jQuery具有返回的數據類型
一個是腳本,另一個是html
但是它似乎並沒有混合在一起。
我怎樣才能解決這個問題?
jQuery的.load()
函數將評估<script>
的響應內容的標簽,但只有當你調用.load()
不涉及選擇退出之前,它插在DOM響應的一部分。
因此,此調用:
$('#myContainer').load("/some/url", function() { /* ... */ });
將導致運行任何腳本內容,但這:
$('#myContainer').load("/some/url #stuffIWant", function() { /* ... */ });
將不會。 我不知道為什么會這樣,但確實如此。
如果您以第一方式進行加載,請理解,直到加載完成,您才能使用定義為全局函數的任何內容(或全局的任何內容)。 從而:
$('#someplace').load(url, function() { } );
newGlobalFunction("hi");
將無法工作,因為在異步請求完成之前不會定義“ newGlobalFunction”。 因此,這應該起作用:
$('#someplace').load(url, function() {
newGlobalFunction("hi");
});
如果您的ajax結果只不過是腳本內容,那么您也可以考慮不將其包裝在<script>
標記中,而自己進行評估!
您是否嘗試過將其作為外部文件加載? 外部文件可以是php頁面,也可以是生成JS代碼。
br
保羅
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.