2013-06-25 180 views
0

我正在使用Ajax加載頁面,並且在該頁面上我正在從issuu.com加載外部腳本。第一次我或Ajax加載頁面時,它非常好地工作,但是如果Ajax加載一個新頁面然後又返回,它將不會再次運行外部腳本(它會加載腳本,但不執行它)。只能執行腳本一次

這是網頁:http://dymak-corporate.134.lait.dk/catalogue/

你可以看到例如瀏覽器開發工具的網絡選項卡,它同時加載腳本,但只在第一次執行。

我試圖加載和執行腳本在我能想到的任何方式,沒有任何工作。

jQuery的getScript加入:

$.getScript("//e.issuu.com/embed.js") 

阿賈克斯加載腳本和eval它:

$.ajax({ 
    url: "/scripts/embed.js", 
    success: function (responseText) { 
     eval(responseText); 
    } 
}); 

它的每一次添加到頭部和刪除它之前,我添加:

$('#issuuScript').remove(); 
var s = document.createElement("script"); 
s.id = "issuuScript"; 
s.src = "//e.issuu.com/embed.js"; 
document.head.append(s); 

重新加載它在每個負載:

function reload_js(src) { 
    $('script[src="' + src + '"]').remove(); 
    $('<script>').attr('src', src).appendTo('head'); 
} 
reload_js('/scripts/embed.js'); 

我也嘗試添加它內聯,沒有成功。

+0

Issuu實際上更新了他們的嵌入腳本,以支持動態創建的嵌入。你應該能夠用你原來的方法取得成功。 – WrongAboutMostThings

回答

0

這不是JavaScript應該如何工作。一個文件include不是一個函數調用,但是你將它視爲一個函數調用。

你應該如何看待它:

我想打電話給some_module.some_function()。是否加載了some_module

編號加載具有該模塊的文件,然後執行該功能。

是的。只需執行該功能。

+0

我想執行它,如果我可以,但它是一個自我調用匿名函數 – Kim

0

我最終只使用issuu的iframe實現