我在我的网站上使用http://instantclick.io(pjax
jquery插件),我遇到了一些关于javascripts的问题。这是非常不稳定的 - 有时一个页面会加载所有脚本工作正常,但有时脚本的部分将不会运行。此外,脚本不止一次运行。例如,如果我在.click()
函数中设置控制台日志,那么当应该只有一个时,我会多次看到控制台日志。
在instantclick.io文档中,它解释了如何在每个页面加载上加载脚本:
如果您需要在每次更改页面时执行JavaScript代码段,请使用以下命令:
InstantClick.on('change', yourCallback);
但是我需要运行一个完整的js文件,而不仅仅是一个函数。我已经尝试在我的整个js文件中包装InstantClick.on('change', function(){
,但是在打开新页面后脚本仍然没有再次运行。
在我的控制台中,我看到许多与未定义的函数有关的错误,这表明每次都没有加载文件。
我该如何解决这个问题?谢谢!
答案 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%>">