2013-05-27 75 views
0

我有一個歷史API腳本,可以在不需要頁面刷新的情況下加載新的頁面內容。我已經遇到了內聯腳本的問題,其中腳本由jQuery評估,即使之前已經完成了腳本。例如,如果有人用內嵌腳本重新訪問頁面,那麼腳本將在每次重新訪問時執行。如果在腳本中添加DOM元素,會導致問題,如果多次訪問該頁面,該元素將被添加多次。停止jQuery評估已經執行的腳本

由於我不會進入的原因,我不能將這些內聯腳本放到外部文件中並以這種方式加載它們。

下面是處理腳本的代碼;

dom.filter('script').each(function(){//function to allow inline javascript, has to be after page fadeIn incase scripts reference page DOM 

    $.globalEval(this.text || this.textContent || this.innerHTML || ''); 
    var script_src = ($(this).attr('src')); 

    if (script_src === 'AJAX/request_feed.js' || script_src === 'js/profile.js'){ 
     $(window).unbind('scroll'); 
     $.getScript(script_src); 
    } 

}); 

如果您需要整個歷史腳本中的更多零件,請詢問。雖然我不認爲他們是必需的。

說明: if子句用於我有的滾動加載器。我有兩個scroll_loaders,因此每次滾動事件都需要解除綁定和綁定。不需要擔心。

+0

您究竟如何加載內容?你使用'.load()'? – Pointy

+0

@Pointy我只是使用AJAX GET請求並從一個div中取回內容並將其放入頁面。我有更多的控制權 –

+0

那麼你需要明確地去掉你不想評估的'