我有一个历史 API 脚本,无需刷新页面即可加载新页面内容。我遇到了内联脚本的问题,其中脚本由 jQuery 评估,即使它们以前已经这样做过。例如,如果有人重新访问带有内联脚本的页面,则每次重新访问时都会执行该脚本。这会导致问题,例如如果在脚本中添加 DOM 元素,那么如果他们多次访问该页面,则该元素将被添加多次。
由于我不会进入的原因,我无法将这些内联脚本放入外部文件并以这种方式加载它们。
这是处理脚本的代码;
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 子句适用于我拥有的滚动加载器。我有两个滚动加载器,因此每次都需要解除和绑定滚动事件。不过,无需担心。