passer la chaîne JSON à la fonction JS

Aide sur les langages de programmation tel-que C++, Java, Android, C#, Delphi, Python, ..
Raef
Messages : 8
Inscription : jeu. mars 29, 2018 5:50 pm

passer la chaîne JSON à la fonction JS

Message par Raef » ven. juin 15, 2018 2:39 pm

Je travaille sur un projet et nous utilisons beaucoup de langages de codage pour différentes parties.

J'ai essayé de simplifier le problème autant que je peux, et est venu avec le JSfiddle suivant.

Le problème est, j'ai une chaîne JSON que je veux transmettre à une fonction JS. Si je l'appelle de JS, c'est ok. Mais quand je l'appelle avec un onmouseover, html renvoie l'erreur 'Uncaught SyntaxError: Invalid or unexpected inken'.

Code : Tout sélectionner

function test123(obj, e, lookupx){
      console.log(lookupx);
    }
    
    test123(this, event, '{"mt:assetsys:assetuapr":{"assetmat":"material","assettag":"tag"}}');
HTML

Code : Tout sélectionner

<div>
      First check the console, direct calling with js string is ok.<br>
      Then:<br>
      <a href="#" onmouseover="test123(this, event, '{"mt:assetsys:assetuapr": 
                 {"assetmat":"material","assettag":"tag"}}');">hover this
      </a>
      <br>
      And an error occurs
    </div>
Quelqu'un pourrait-il expliquer quelle est la différence entre les deux cas,

1) l'onmouseover vs

2) l'appel direct à la fonction.

Merci d'avance.

Avatar de l’utilisateur
jems
Messages : 7
Inscription : sam. mars 31, 2018 2:42 am

Re: passer la chaîne JSON à la fonction JS

Message par jems » ven. juin 15, 2018 2:41 pm

car dans le second cas la chaîne JSON est déjà placée entre guillemets (pour l'attribut onmouseover), donc vous devez échapper les guillemets dans le JSON, sinon l'attribut onmouseover sera mal formé - la première fois qu'il arrive à un double-quote liée au JSON, il pense que c'est la fin de l'attribut onmouseover, mais ce n'est pas le cas.

autre chose :

Vous devez échapper toutes les citations à l'intérieur de l'onmouseover = ""
Échappez-les avec une barre oblique inverse comme celle-ci \"

HenryVon
Messages : 7
Inscription : dim. févr. 03, 2019 12:12 pm

passer la chaine JSON a la fonction JS

Message par HenryVon » lun. mars 18, 2019 4:18 am

je voudrais convertir une chaîne en hexadécimal, mais je voudrais aussi convertir le hexadécimal en une chaîne
C'est possible avec php 4.0.2 ?

Répondre