每次加载新页面时加载javascript文件

时间:2014-03-06 10:30:55

标签: javascript jquery html pjax

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

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

  

如果您需要在每次更改页面时执行JavaScript代码段,请使用以下命令:            InstantClick.on('change', yourCallback);

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

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

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

2 个答案:

答案 0 :(得分:1)

写入这样的回调代码,用于动态地将js文件添加到DOM

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

并将链接更改为您的js文件的网址路径。

答案 1 :(得分:0)

像这样使用

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