WordPress函数文档esc_js()
转义单引号,双引号,特殊的 HTML 字符, &,和修正行结束符 描述 转义单引号,双引号,特殊的 H…
转义单引号,双引号,特殊的 HTML 字符, &,和修正行结束符
描述
转义单引号,双引号,特殊的 HTML 字符,< > &,和修正行结束符。
这个函数主要用来转义输出到 JS 中的文本字符串, 它主要用于 inline JS(比如 a 标签的 onclick 属性中)
需要注意的是生成字符串必须在单引号中。
用法
<?php esc_js( $text ) ?>
参数
$text
(string) (必填) 将转义的文本
默认值: None
返回值
(string)
转义之后的 js 字符串。
示例
Example of an input tag within a form displayed on the front-end of the site, generated from a widget. The first php segment is using esc_attr as it is an html attribute of input, while the next php segments is using esc_js within inline Javascript.
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
<input type=“text” value=“<?php echo esc_attr( $instance[‘input_text’] ); ?>“ id=“subbox” onfocus=“if ( this.value == ‘<?php echo esc_js( $instance[‘input_text’] ); ?>‘) { this.value = ”; }” onblur=“if ( this.value == ” ) { this.value = ‘<?php echo esc_js( $instance[‘input_text’] ); ?>‘; }” name=“email” />
|
As mentioned above, json_encode is suitable if you’re not dealing with escaping strings inside of HTML event handler attributes (json_encode includes the string-delimiting quotes for you):
1
2
3
4
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
var title = <?php echo json_encode( $instance[‘title’] ) ?>;
|
注意
开发者可以通过 js_escape 这个 filter 接口对返回字符串进行再次过滤。
历史
添加于 版本: 2.8.0
源文件
esc_js() 函数的代码位于 wp-includes/formatting.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/* ———————————-
* wordpress函数 kim收集
* ———————————- */
/**
* Escape single quotes, htmlspecialchar ” <> &, and fix line endings.
*
* Escapes text strings for echoing in JS. It is intended to be used for inline JS
* (in a tag attribute, for example onclick=”…”). Note that the strings have to
* be in single quotes. The filter ‘js_escape’ is also applied here.
*
* @since 2.8.0
*
* @param string $text The text to be escaped.
* @return string Escaped text.
*/
function esc_js( $text ) {
$safe_text = wp_check_invalid_utf8( $text );
$safe_text = _wp_specialchars( $safe_text, ENT_COMPAT );
$safe_text = preg_replace( ‘/&#(x)?0*(?(1)27|39);?/i’, “‘”, stripslashes( $safe_text ) );
$safe_text = str_replace( “”, ”, $safe_text );
$safe_text = str_replace( “
“, ‘n’, addslashes( $safe_text ) );
/**
* Filter a string cleaned and escaped for output in JavaScript.
*
* Text passed to esc_js() is stripped of invalid or special characters,
* and properly slashed for output.
*
* @since 2.0.6
*
* @param string $safe_text The text after it has been escaped.
* @param string $text The text prior to being escaped.
*/
return apply_filters( ‘js_escape’, $safe_text, $text );
}
|
相关
See: Data Validation article for an in-depth discussion of input and output sanitization.
- esc_html()
- esc_html__()
- esc_html_e()
- esc_attr()
- esc_attr__()
- esc_attr_e()
- esc_js()
- esc_sql()
- esc_textarea()
- esc_url()
- esc_url_raw()
- 原文:http://codex.wordpress.org/Function_Reference/esc_js
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
评论功能已经关闭!