¿Hay alguna forma de volver a ejecutar JS sin actualizar una página?
Decir si tengo una página principal y una página interior. Cuando se llama a la página interior, se llama a través de ajax, reemplazando el contenido de la página principal. Cuando el usuario vuelve a hacer clic, me gustaría navegar de regreso a la página principal sin tener que volver a cargar la página. Pero, la interfaz de usuario de la página principal se basa en javascript, por lo que después de hacer clic, me gustaría volver a ejecutar el javascript de la página principal. es posible?
Editar: Aquí hay algo de código. Envuelvo mi código en una función, pero ¿dónde y cómo llamarías a esta función?
function executeGlobJs() { alert("js reload success"); }Podrías usar la API de historial de html5:
En su controlador de click , llamará al método pushState , stat almacena el estado actual para su posterior reutilización:
$(document).on('click', 'a.link', function () { // some ajax magic here to load the page content // plus something that replaces the content... // execute your custom javascript stuff that should be called again executeGlobJs() // replace the browser-url to the new url // maybe a link where the user has clicked history.pushState(data, title, url); })...más tarde si el usuario navega hacia atrás:
$(window).on('popstate', function () { // the user has navigated back, // load the content again (either via ajax or from an cache-object) // execute your custom stuff here... executeGlobJs() })¡Este es un ejemplo bastante simple y, por supuesto, no perfecto! Deberías leer más sobre esto aquí:
Para las partes relacionadas con ajax y DOM, debe aprender un poco sobre jQuery http://api.jquery.com/jquery.ajax/ . (Se trata del signo de dólar mágico)
Otra opción sería el hashchange , si tiene que admitir navegadores más antiguos...
Puede encapsular todo su javascript en una función y llamar a esta función al cargar la página. Y eventualmente esto le dará el control de volver a ejecutar javascript completo sin recargar la página.
Esta es una práctica común cuando usa cualquier utilidad concat (por ejemplo, Gulp)
Si desea volver a cargar los archivos de script como si fuera una recarga de página, eche un vistazo a esto .
Para todas las demás funciones de script necesarias, simplemente cree una función contenedora como la escribieron @s4n989 y @Rudolf Manusadzhyan. Luego ejecute esa función cuando necesite reiniciar su página.