esc_js() WP 2.8.0

Готує рядок для використання JavaScript. Щоб уберегти від помилок: екранує лапки, змінює символи " <> &на спецсимволи HTML і виправляє закінчення рядка.

Корисна при використанні однорядкового JS коду (в HTML атрибутах, наприклад, onclick=’…’ ). Пам’ятайте, що рядок повинен бути поміщений в одинарні лапки.

Працює на основі:
_wp_specialchars()

Хуки з функції

Повертає

Строку. Змінений рядок.

Використання

esc_js($text);
$text
(рядок) (обов’язковий)
Текст, який потрібно змінити.

Приклади

0

#1 Приклад роботи esc_js():

$text = "лапка ', подвійна ", більше >, менше <, амперсанд &";
echo esc_js($text);

// поверне: лапка ', подвійна ", більше >, менше <, амперсанд &
0

#2 Приклад з HTML тега input для форми.

Перший сегмент PHP використовує функцію esc_attr() т.к. це рядок атрибуті, а другий сегмент використовує esc_js() , т.к. рядок призначений для JS:

<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" />

список змін

З версії 2.8.0Введено.

esc js WP 6.0.2

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( "r", '', $safe_text );
	$safe_text = str_replace( "n", 'n', addslashes( $safe_text ) );
	/**
	 * Filters 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 Цей текст після того, як він був escaped.
	 * @param string $text Текст орієнтованого на escaped.
	 */
	return apply_filters( 'js_escape', $safe_text, $text );
}