MISE À JOUR: Le service principal était alimenté par un proxy du service Web ASP.Net AJAX.Création d'un rappel JavaScript dans un iframe
1) La page principale a deux objets globaux, un pour les connexions dorsales (Svc
) et un autre pour la gestion du DOM (Main
). Il charge également dynamiquement les documents dans un iframe.
2) Ces iframes ont besoin d'accéder aux services fournis par Svc
, et fournissent également une fonction de rappel.
3) Le problème - en passant une fonction créée dans l'iframe à l'image parent, elle est traitée comme un objet et non une fonction et ne peut pas être invoquée.
Quelqu'un peut-il fournir une meilleure solution que ce que j'ai actuellement dans le iframe:
var Main = parent.Main,
Svc = parent.Svc;
Svc.method(data, Main.createCallback(
function(response) {}
));
et dans le cadre parent:
Main.createCallback = function(func) {
return function() {
func.apply(func, arguments);
}
}
Je suis assez sûr que les fonctions sont des objets ... Je n'ai eu aucun problème avant d'utiliser 'parent' de l'iframe. –
Ouais en utilisant le parent est bien, c'est juste essayer de passer une fonction comme un rappel à l'image parent ne fonctionne pas. –
Je ne suis pas entièrement sûr de ce que le code est censé faire. Je pense aussi que le code dans le cadre parent ne fonctionne pas parce que func n'est pas dans la portée de la fonction retournée (en fait cela pourrait être la cause du problème). –