$(function() {
var content = $('#content');
$('a').on('click', function(e) {
History.pushState(null, $(this).text(), $(this).attr('href'));
return false;
});
History.Adapter.bind(window, 'statechange', function() {
var state = History.getState();
content.html('loading...');
$.get(state.url, function(response) {
content.html($(response).filter('#content').html());
});
});
});
browserstate/history.jsКак запустить JavaScript, какой файл был загружен PushState
Я хотел бы использовать pushState
изменить содержимое страницы, но на самом деле содержание каждого может иметь различный JavaScript для запуска, есть два пути на мой взгляд, решить его
- писать все возможные функции в одном сценарии, с помощью JQuery
on
связать это событие - положить JavaScript внутри
#content
, поэтому при рендеринге контента также будет отображаться сценарий
Первое решение сделает файл js большим и сложным, второе решение вызовет html-файл уродливым, любое лучшее решение?
Спасибо за предложения :) – Chan
Я хотел бы задать вам еще один вопрос, будет ли скрипт занимать память при переходе на другой контент страницы? – Chan
Я не думаю, что так будет. После удаления элементов из DOM события javascript будут выпущены. Посмотрите [здесь] (http://stackoverflow.com/questions/12528049/if-a-dom-element-is-removed-are-its-listeners-also-removed-from-memory). – Miro