繁体   English   中英

jgent的magento转义字符串

[英]magento escape string for javascript

是否有一个帮助函数可以正确地转义字符串,以呈现为引用JavaScript字符串文字的单引号?

我知道jsQuoteEscape但它只处理引号而不处理\\ n&\\ r \\ n等。

所以如果我的字符串是'line1 \\ nlineb'(即两行之间有换行符)

我用

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

我会进入渲染的内容

    var jsvar='line1
line2';

这是一个语法错误。

谢谢,Eyal

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

根本不清楚,如果将非对象字符串数据类型编码为javascript字符串是JSON编码的副作用,或者它是真的,根据Hoyle Crockford JSON,所以我总是喜欢将我的字符串包装成一个传递它们时的物体

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

这就是你用javascript处理这个问题的方法。 没有专门为此构建的方法。 如果您有兴趣查看块中可用的辅助方法,请查看方法中的方法

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

如果你正在处理一个模板,它是链上一个块的一部分,得到它的类,然后检查它的定义

var_dump get_class($this);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM