Остановите jQuery .html(), загружающий JavaScript
Я использую smoothState.js для предварительной загрузки страницы через ajax. Когда он обновляет страницу с помощью html, он снова загружает файл javascript.
Кажется, что страница запускает оба, вызывая ошибки. Могу ли я остановить загрузку скрипта jQuery?
/** Run when requested content is ready to be injected into the page */
onEnd : {
duration: 0,
render: function (url, $container, $content) {
$body.css('cursor', 'auto');
$body.find('a').css('cursor', 'auto');
$container.html($content);
}
},
Сценарий в HTML, который он загружает второй раз после загрузки AJAX
<script src="/js/main.min.js" async defer="defer"></script>
1 ответ
Решение
Если я правильно понимаю, попробуйте это:
var stop;
/** Run when requested content is ready to be injected into the page */
onEnd : {
duration: 0,
render: function (url, $container, $content) {
// the id #content must be after script tag in your page
if(stop) $content = jQuery($content).find('#content').html();
$body.css('cursor', 'auto');
$body.find('a').css('cursor', 'auto');
$container.html($content);
// after first request enable stop variable
stop = true;
}
},
HTML:
<script src="/js/main.min.js" async defer="defer"></script>
<div id="content">.........</div>