2017-09-15 3 views
0

suite à this répondre, je suis en train d'exécuter un JS sur la page HTTPResponseinvoquons fonction Javascript dans HTTPResponse

return HttpResponse("<script>alert('Yep, JS running.');window.location.href='/path/to/original/url'; parent.show_modal_form('" + json.dumps(my_list) + "');};</script>") 

Mais la fonction js est définie dans la page référencée ci-dessus et il essaie de exécuter le script avant de charger (et non après avoir chargé) la page, et par conséquent ne parvient pas à trouver la fonction. Toutes les idées sur la façon de le faire exécuter après le window.location.href a chargé la page, afin qu'il puisse trouver la fonction js étant appelée ($ (document) .ready ne fonctionnera pas parce que JQuery n'est pas encore chargé. essayé window.load mais cela ne fonctionne pas (ie il ne trouve pas la fonction javascript))

Mon cas d'utilisation est que l'utilisateur effectue une action dans la page d'administration de Django, et par conséquent l'utilisateur a besoin de voir un formulaire de dialogue modal sur la même page (après l'exécution de la logique dans la vue)

+0

@amrit - c'est le lien J'ai dans la question aussi – Anupam

Répondre

0

Comme indiqué dans this SO post, tout script après window.location.href est ignoré et la nouvelle page (dirigée vers) prend le relais . Ainsi, il n'est pas possible de passer à une autre page et d'invoquer une fonction javascript sur cette page (sauf si une fonction JS s'exécute au chargement de la page et que nous transmettons des paramètres dans l'URL elle-même)