2008-12-17 7 views
2

J'ai été à cela pendant plusieurs jours et les recherches dont ici n'ont pas encore donné de solution.Cross Domain Javascript Bookmarklet

Je crée un Bookmarklet qui doit interagir avec une API POST. Je l'ai obtenu la plupart du temps sauf la partie la plus importante; l'envoi de données de l'iframe (je sais horrible! Si quelqu'un connaît une meilleure solution s'il vous plaît faites le moi savoir) pour le javascript sur mon domaine (même domaine que l'API de sorte que la communication avec l'API n'est pas un problème). À partir de la page, l'utilisateur clique sur le bookmarklet dont j'ai besoin pour obtenir les données suivantes sur le javascript inclus dans l'iFrame.

var title = pageData[0].title; 
    var address = pageData[0].address; 
    var lastmodified = pageData[0].lastmodified; 
    var referralurl = pageData[0].referralurl; 

je fixe d'abord avec l'analyse de ces données JSON et l'envoyer par le nom = « » attribut du iFrame mais réalisées sur environ 20% des pages Web cette pause. Je reçois un accès refusé; aussi ce n'est pas une très jolie méthode.

Quelqu'un at-il des idées sur la façon dont je peux résoudre ce problème. Je ne cherche pas à utiliser les POSTS qui redirigent je veux que tout soit AJAX et aussi discret que possible. Il est également intéressant de noter que j'utilise la bibliothèque jQuery.

Merci beaucoup,

Ice

Répondre

0

Si vous avez besoin de transmettre des données à l'iframe, et l'iframe est notamment fait une autre page, mais cette autre page est sur le même domaine (beaucoup de hypothèses, je sais).

Ensuite, le code de page de manuel peut le faire:

DATA_FOR_IFRAME = ({'whatever': 'stuff'}); 

ensuite le code sur la page incluse par le iframe peut:

window.parent.DATA_FOR_IFRAME; 

pour obtenir les données :)

1

Après beaucoup de travail, j'ai pu trouver une solution utilisant JSONP qui permet le Javascript de Cross Domain. C'est très compliqué avec le Codeigniter Framework parce que le fait de transmettre des données sur les URL nécessite beaucoup d'encodage et de s'assurer que vous n'avez pas de caractères illégaux. Aussi, je cherche toujours à voir à quel point c'est vraiment sécurisé.

1

Si je comprends bien votre question, vous pourriez avoir un certain succès en regardant dans l'utilisation d'un proxy de balise de script. C'est la façon standard de faire des AJAX interdomaines dans des frameworks javascript comme jquery et extjs.

Voir Jquery AJAX Documentation