Comment puis-je remplacer le texte dans la chaîne JSON avec un script pour Greasemonkey
Je veux créer un script pour Greasemonkey sur Firefox sans l'aide de jQuery, qui peut remplacer le texte ancien par un nouveau texte, lorsque la page du site web est chargé.
Code HTML:
..
window.app = profileBuilder({
..
"page": {
"btn": {
"eye": "blue",
"favorite_color": "blue",
"gender": "male",
},
},
..
});
..
Remplacer "bleu" de l'oeil par "vert", "bleu" de couleur préférée par les "rouges" et "homme" par "femme".
Lorsque la page sera chargée, je veux voir, par exemple Vert (pas de Bleu) pour l'Œil et la Femme pour le Sexe (pas Homme).
Je suppose que j'ai besoin d'utiliser les fonctions suivante:
GM_getValue()
GM_setValue()
JSON.parse()
JSON.stringify()
PS: le code JSON est directement dans la page et non dans le fichier (../code.json)
Script code:
//==UserScript==
//@name nemrod Test
//@namespace nemrod
//@include http*://mywebsite.com/*
//@version 1
//==/UserScript==
var json = {"page": {"btn": {"eye": "blue","favorite_color": "blue","gender": "male",},},};
var stringified = JSON.stringify(json);
stringified = stringified.replace(/"eye": "blue"/gm, '"eye": "green"');
stringified = stringified.replace(/"favorite_color": "blue"/gm, '"favorite_color": "red"');
var jsonObject = JSON.parse(stringified);
Il ne fonctionne pas
Quelqu'un peut-il aider avec le bon code?
est-ce une partie de votre texte ou de la page elle-même ?
Qu'avez-vous essayé et pourquoi est-il votre estimation que vous avez besoin pour utiliser ces fonctions?
Cette partie se trouve sur la page elle-même.
Parce que j'ai regardé sur le web?
c'est juste un objet de sorte que vous pouvez utiliser unsafeWindow.page.btn.yeux = "green";
Qu'avez-vous essayé et pourquoi est-il votre estimation que vous avez besoin pour utiliser ces fonctions?
Cette partie se trouve sur la page elle-même.
Parce que j'ai regardé sur le web?
c'est juste un objet de sorte que vous pouvez utiliser unsafeWindow.page.btn.yeux = "green";
OriginalL'auteur nemrod | 2015-02-01
Vous devez vous connecter pour publier un commentaire.
Première
stringify()
votre JSON.Ensuite, utilisez la
.replace()
JavaScript fonction String.Maintenant
parse()
votre JSON en objet.Maintenant, vous pouvez utiliser
jsonObject
pour tout ce que vous voulez.EDIT: l'Utilisation de ces lignes à la place de la précédente
.replace()
s.Vous pourriez, mais je pense que le
.replace()
fonction de Chaîne est plus simple maintenant puisque c'est prévu dans le code JavaScript de toute façon. Vous pouvez utiliser les RegEx aussi, si vous le souhaitez.Comment dois-je construire mon code final ?
Voir la modifier...
OriginalL'auteur Data2000
plus précis de procédure consisterait à utiliser l'expression régulière.
de cette façon, vous savez que vous êtes en remplaçant le bleu pour les yeux et pas n'importe quel bleu apparition (comme la couleur préférée).
le 'g' & 'm' options pour l'expression régulière signifie global qui sera la cause de la recherche de tous les matches (dans le cas où vous avez plus d'un " œil "dans votre json) et" m " pour multiligne. dans le cas où votre chaîne est multilined.
OriginalL'auteur Gal Ziv
JSON
de manipulation de chaîne peut être fait facilement avecJSON.parse()
etJSON.stringify()
.Un échantillon de exemple est donné ci-dessous:
Maintenant la
tweetString
a la mise à jourJSON
objet.OriginalL'auteur Dhanya Gopinath