JavaScript - Comment puis-je ouvrir une nouvelle page et de passer des données JSON?
J'ai une page de recherche.jsp. Lorsque l'utilisateur sélectionne un dossier et l'appuie sur la touche edit, j'aimerais ouvrir une nouvelle page (dans la même fenêtre) avec les données de l'enregistrement (qui est stocké dans un objet json et transmis à la nouvelle page). Comment puis-je utiliser Javascript (jQuery) pour ouvrir une nouvelle page et de passer les données JSON?
Merci à tous pour les réponses. Les pages sont sur le même domaine. Je m'excuse pour ne pas faire que dans le post original.
OriginalL'auteur James | 2012-12-06
Vous devez vous connecter pour publier un commentaire.
Si les deux pages sont sur le même domaine, une troisième façon est d'utiliser HTML5 localStorage: http://diveintohtml5.info/storage.html
En fait localStorage est justement prévu pour ce que vous voulez. Traiter avec OBTENIR params ou de la fenêtre du document ou de la JS références n'est pas très portable (même si, je le sais, tous les navigateurs ne prennent pas en charge localStorage).
Vous avez tout à fait raison. La question a été posée dans un sens, je pensais que les deux pages seraient sur le même domaine. Modifié la réponse avec la précision. Et j'ai trouvé les autres solutions un peu moche..
Oui, les deux pages sont sur le même domaine si cela fonctionne bien. Je dois juste faire attention à effacer le stockage après utilisation.
OriginalL'auteur Ulflander
En supposant que les deux pages sont sur le même domaine, vous pouvez utiliser le retour de l'objet créé par la fenêtre.open (), d'accès (et de modifier) l'objet de la fenêtre d'une fenêtre nouvellement ouverte.
pouvez-vous donner un bout de code qui peut décrire de plus votre réponse
OriginalL'auteur Jack
Hmm, par exemple, vous avez un objet
Vous pouvez le traduire dans la chaîne, à l'aide de JSON.stringify méthode
Alors vous devriez utiliser l'encodage Base64 pour encoder les données (base64 encode/décode méthodes peuvent être facilement trouvés dans les moteurs de recherche)
Vous obtiendrez quelque chose comme ceci
Ensuite, vous pouvez passer cette chaîne de caractères comme paramètre:
Enfin, à l'inverse des actions sur la page chargée.
OriginalL'auteur bonbonez
Vous pouvez créer "à la volée" un formulaire avec un hidden/de la saisie de texte valeur de celle-ci contiendra la valeur json, vous pouvez ensuite soumettre ce formulaire via javascript.
Quelque chose comme ça...
Im en utilisant JQUERY ET le trait de SOULIGNEMENT(pour le modèle objet)
c'est le modèle
vous pouvez ensuite publier l'utiliser sur javascript
maintenant, vous n'avez pas à vous soucier de la longueur de vous json ou du nombre de variables à envoyer.
meilleur!
Eh bien, ce est un crossbrowser solution tout en Ulflander pas, mais vous avez droit à sa réponse est beaucoup plus simple cause est juste de prendre avantage des nouvelles fonctionnalités de html5. Et bien sûr, comme vous le dites, cette solution peut vous aider lors de vos pages sont dans des domaines différents. les meilleures ...
OriginalL'auteur ncubica
Si le JSON est assez petit, vous pouvez simplement l'inclure comme un paramètre GET à l'URL lorsque vous ouvrez une nouvelle fenêtre.
Quelque chose comme:
Récemment, j'ai couru dans cette déclaration, "si JSON est assez petit" Comment est suffisamment Petite et quelles en sont les limites?
stackoverflow.com/questions/2659952/...
OriginalL'auteur machineghost
Voici quelques très simple JavaScript (pas de HTML, pas de jQuery), qui convertit un objet en JSON et l'envoie vers une autre page:
Utiliser PHP comme ceci sur la page cible pour obtenir le JSON:
Ou, plus simplement pour JavaScript:
OriginalL'auteur terrymorse
Assumer si vos données json
var data={"name":"abc"};
La page qui envoie les données JSON devriez avoir le code suivant dans la balise script.
La page qui reçoit les données JSON devrait avoir le code.
OriginalL'auteur immanual