2014-03-06 59 views
0

我在我的网站上使用http://instantclick.io(一个pjax jquery插件),我遇到了关于JavaScripts的一些问题。这是非常令人沮丧的 - 有时一个页面会加载所有的脚本工作正常,但其他时间的部分脚本将无法运行。此外,脚本不止一次运行。例如,如果我在.click()函数中设置了一个控制台日志,那么当应该只有一个控制台时,我会多次看到控制台日志。加载JavaScript文件,每当一个新的页面加载

在instantclick.io文档,它解释了如何加载每个页面加载的脚本:

如果你有一段JavaScript代码,你需要在每一页上改变执行,使用以下命令: InstantClick.on('change', yourCallback);

但我需要运行一个完整的js文件,而不仅仅是一个函数。我试过围绕我的整个js文件包装InstantClick.on('change', function(){,但是在打开新页面后,脚本仍然没有再次运行。

在我的控制台中,我看到很多与函数未定义相关的错误,这表明文件没有每次加载。

我该如何解决这个问题?谢谢!

回答

1

在回调代码编写这样的动态添加JS文件到DOM

var jsFile=document.createElement('script'); 
    jsFile.setAttribute("type","text/javascript"); 
    jsFile.setAttribute("src", link); 
    document.getElementsByTagName("head")[0].appendChild(jsFile); 

,并更改链接到URL到您的js文件的路径。

+0

甜,正是我一直在寻找! –

0

使用这样

long dateTimeSec = new Date().getTime(); 
<link rel="stylesheet" href="bootstrap/css/bootstrap.css?v=<%=dateTimeSec%>"> 
相关问题