Загружать файл javascript каждый раз при загрузке новой страницы

0

Я использую http://instantclick.io на своем веб-сайте (pjax jQuery pjax), и у меня возникают некоторые проблемы с javascripts. Это очень темпераментно - иногда страница загружается со всеми сценариями, работающими нормально, но в других случаях части скриптов не будут работать. Кроме того, скрипты запускаются более одного раза. Например, если я установил консольный журнал в функции .click(), я увижу журнал консоли несколько раз, когда должен быть только один.

В документации по instantclick.io объясняется, как загрузить скрипт при каждой загрузке страницы:

Если у вас есть фрагмент JavaScript, который необходимо выполнить при каждой смене страницы, используйте следующее: InstantClick.on('change', yourCallback);

Но мне нужно запустить целый файл js, а не только функцию. Я попытался обернуть InstantClick.on('change', function(){ вокруг моего всего js файла, но скрипты все еще не запускаются после открытия новой страницы.

В моей консоли я вижу много ошибок, связанных с неопределенностью функций, что указывает на то, что файлы не загружаются каждый раз.

Как я могу это решить? Благодарю!

Теги:
pjax

2 ответа

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%>">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню