當我進行AJAX調用來替換div時,響應包含指向外部.js文件的腳本標記。但是,我無法得到返回的JS執行。我試圖eval()的迴應,但沒有奏效。我也嘗試從onComplete回調中調用外部.js文件中的函數,但這也不起作用。不知道還有什麼要做。我使用MooTools的核心1.4.5AJAX調用後Javascript文件不能執行
首頁的JS
window.addEvent('domready', function(){
function ajaxfunc(i)
{
return function(e){
e.stop();
var requestData = new Request({
url: 'blah.php?cat=' + i,
evalScripts: true,
evalResponse: true,
onComplete: function(response){
$('rt-main').set('html', response);
}
});
requestData.send();
};
}
var total = $('cat_table').getChildren('div').length;
for(var i=1; i<=total; i++)
{
$('catClick'+i).addEvent('click', ajaxfunc(i));
}
});
返回的HTML
<script src="listings.js" type="text/javascript"></script>
...(other markup, etc)
這listings.js文件
window.addEvent('domready', function(){
function gotoItem(i)
{
return function(e){
e.stop();
var id= i;
var requestData = new Request ({
url: 'blah.php?id='+id,
onComplete: function(response){
$('rt-main').set('html', response);
}
});
requestData.send();
};
}
$$('.itemBox').each(function(el){
el.getElement('a.itemClick').addEvent('click', gotoItem(el.id));
});
});
環境裏面我正在工作的是Joomla 3.1,以免影響任何事情。
「.js」腳本文件是否爲新的ajax調用? – Sergio
該腳本是否標記了呈現的html?如果沒有,你可以發佈你的'blah.php',在你解析腳本的部分。可能與逃避標籤有關。 「響應」是怎麼樣的? – Sergio
在第二個.js文件中,確實是另一個AJAX調用。我想通過AJAX調用第二頁時添加新的事件偵聽器。您看到的腳本標記是呈現的HTML的一部分。 blah.php中的腳本標記直接硬編碼(在MVC中,我將其硬編碼到視圖中)。即我不使用echo來輸出這個腳本標籤。 – ehz350