2010-09-02 15 views
14

J'ai une page Web qui utilise $(document).ready() pour construire l'interface. Ensuite, l'utilisateur peut accéder à une page enfant, et pour revenir à la page d'origine, il peut appuyer sur le bouton «précédent» du navigateur ou sur le bouton «Retour» dans la page qui déclenche un . De retour sur la page d'origine, $(document).ready() n'est pas déclenché donc la page manque d'informations.

Y at-il un moyen de le déclencher automatiquement comme s'il s'agissait d'une "charge réelle"?

merci!

modifier

placer une alerte en elle, l'alerte est poped mais des choses qui manque dans mon interface comme si une partie de l'événement prêt est manquant. Enquête ...

modifier 2

hahahahaha dans document.ready Je click une case à cocher qui sont censés être décochée. Quand je "recule" sur cette page, ils sont cochés pour qu'ils ne soient pas cochés parce que je les trouve.

Désolé, cela est tout à fait mon mauvais :(

+0

Dans quel navigateur voyez-vous cela? Je me souviens que seul Opera a ce problème avec les boutons Précédent/Suivant. –

+0

Je suis sur Chrome. L'utilisateur qui a signalé le problème est sur Firefox. – Sirber

+0

s'il vous plaît voter close – Sirber

Répondre

7

Si l'utilisateur utilise le bouton Back pour naviguer et vous avez besoin d'une recharge complète de la page, vous pouvez définir la politique NO-CACHE de la page.

De cette façon, le navigateur est obligé de recharger la page à partir du serveur, même en utilisant le bouton Back

+0

Hrmm..nice réponse. Je n'avais pas pensé à ça. – Dutchie432

+0

J'utilise déjà: header ("Cache-Control: privé, no-cache, doit-revalider"); header ("Pragma: no-cache"); – Sirber

+0

J'ai ajouté '', mais il ne recharge pas la page lorsque j'appuie sur "retour". – Sirber

1

Question très intéressante Vous pourriez avoir besoin de re-déclencher l'événement/la fonction lorsque la page est mise au point, ou quelque chose de similaire. pourrait également avoir besoin de garder une variable de drapeau pour suivre quand r un «événement de re-déclenchement» est en ordre.

4

1.) mettez des scripts au bas de votre page.
2.) exécuter des plugins et autres objets dans vos dernières balises de script.
3.) N'utilisez pas du tout les implémentations onDomReady, c'est redondant. Les gens sont tellement habitués à onloadready ou onloadready, ils oublient le fait que mettre vos scripts au bas d'une page fait pratiquement la même chose sans avoir besoin d'interroger et voir si votre code HTML est disponible. En outre, il est également recommandé que vos scripts ne bloquent pas non plus le rendu html/css.

Ne pas dépendre des implémentations onDomReady ou onLoad permet de résoudre de nombreux problèmes.

+1

-1, Pour un navigateur où 'onload' ne fonctionne pas, votre solution ne fonctionne pas aussi bien. Par exemple. FireFox, il n'exécute tout simplement pas le script, que vous le mettiez en onload ou en bas de la page. Avez-vous même testé? – Pacerier

8

Une solution rapide à ce problème, utilisez plutôt "onpageshow".

window.onpageshow = function(event) { 
    //do something 
}; 
+0

Merci! Aucune des autres solutions proposées ne fonctionnait correctement sur Firefox et Chrome, mais celui-ci le fait. –