11
votes

Obtenir iframe src param de l'intérieur de l'iframe lui-même

J'ai un iframe et j'ai besoin de capturer l'attribut SRC dans une variable JavaScript. Voici comment mon iframe ressemble à xxx

je suis capable d'obtenir le nom via fenêtre.name mais pas l'attribut SRC. Aucune idée?


4 commentaires

top.document.getelementsbyname (window.name) [0] .src devrait le faire


@GGG: Cela ne fonctionnera pas de cross-domain.


@Slaks Rien ne fonctionnera croix domain = / sauf document.location , évidemment, mais j'ai supposé que cela ne fonctionnait pas pour lui pour une raison quelconque.


Le script est-il dans le document de l'iframe ou dans le même document que l'IFrame?


4 Réponses :


3
votes

Vous recherchez document.location , comme tout autre document.
Chaque image obtient son propre document .


0 commentaires

1
votes
var src = top.document.getElementById("iframe_module_46081").src;
If you don't want to use jquery selector. 

1 commentaires

Merci tout sauf que je viens de voir que le domaine du top iframe est différent, j'ai donc des problèmes de crossomain.



19
votes

Si autorisé par des contrôles croisés, essayez fenêtre.frameElement.src . Sinon, vous n'avez pas de chance et laissé seul avec emplacement.href .


3 commentaires

Pourquoi le emplacement.href Choix malchanceux?


Parce que l'iframe aurait pu naviguer loin de son emplacement d'origine


window.frameLeElement est null lorsque le domaine croisé (je teste sur chrome)



0
votes

Quant à moi pour l'instant, j'ai fini par sauvegarder l'emplacement initial iframe.href à l'objet Window. (fenêtre.project_name_first_url_loaded = window.location.href) quelque part dans l'application Bootstrapping avant que l'application puisse modifier son URL.

L'autre endroit où nous pourrions le prendre, c'est l'API d'histoire, mais il n'a aucune information sur l'URL initiale avant de revenir à l'état initial, je crois.


0 commentaires