Magento escape string pour javascript

Existe-t-il une fonction d'aide qui échappe correctement à une chaîne pour être rendue sous forme de littéral de chaîne JavaScript cité?

Je connais jsQuoteEscape, mais il ne gère que des citations et ne traite pas \ n etc.

Donc, si ma chaîne est 'line1 \ nlineb' (c'est-à-dire deux lignes avec une nouvelle ligne entre elles)

Et j'utilise

var jsvar='<?php echo $this->helper('myextension')->jsQuoteEscape($mystring); ?>'; 

J'entrerai dans le contenu rendu

  var jsvar='line1 line2'; 

Qui est une erreur de syntaxe.

Merci, Eyal

Oui

 $string = 'Hello There'; var_dump( Mage::helper('core')->jsonEncode($string) ); var_dump( json_encode($string) ); 

Je n'ai jamais été clair si l'encodage d'un type de données de chaîne non-objet en tant que chaîne javascript est un effet secondaire de l'encodage JSON, ou s'il est vrai, selon Hoyle Crockford JSON, donc j'aime toujours enrouler mes chaînes dans un S'arrêter lorsqu'on les transmet

 $o = new stdClass(); $o->param = 'This is my Param'; $json = json_encode($o); echo 'var data = ' . $json . ';' . "\n"; echo 'var jsdata = data.param'; 

C'est ainsi que vous allez gérer cela avec javascript. Il n'y a pas de méthode qui est conçue spécifiquement pour cela. Si vous êtes intéressé à voir les méthodes d'assistance que vous avez disponibles à partir d'un bloc, vérifiez les méthodes dans

 app/code/core/Mage/Core/Block/Abstract.php app/code/core/Mage/Core/Block/Template.php 

Et si vous traitez un modèle qui fait partie d'un bloc plus haut de la chaîne, obtenez sa classe puis vérifiez sa définition

 var_dump get_class($this);