Я использую jQuery .data()
для работы с пользовательскими атрибутами данных HTML5, где значение атрибута должно содержать как одинарные, так и двойные кавычки:
<p class="example" data-example="She said "WTF" on last night's show.">
Я знаю, что использование кодов символов, таких как "
, в значении атрибута данных может заставить работать вышеописанное, но я не всегда могу контролировать, как вводятся значения. Кроме того, мне нужно иметь возможность использовать теги HTML в разметке, например:
<p class="example" data-example="
She said "<abbr title="What The F***">WTF</abbr>" on last night's show.
">
Если ответом является некоторая форма .replace()
, то это нужно сделать до того, как значение будет прочитано .data()
, возможно, применяя его ко всему <body>
?
Обычная обратная косая черта, например <abbr title="te\'st">WTF</abbr>
, тоже не работает.
В идеале это должно иметь гибкость для работы с обоими:
data-example="..."
и data-example='...'
Но если это возможно только одним способом, то я мог бы, по крайней мере, согласиться с этим. Идеи?
Обновление – еще немного контекста:
Я работаю над этим для responsejs.com. Фактическое применение этого может состоять в том, чтобы загружать боковую панель только для браузеров выше определенной ширины (и обрабатывать это в браузере, а не в PHP). В случае WordPress, например, боковая панель может содержать виджеты, изображения и т. д. Кавычки внутри тегов PHP не являются проблемой, потому что они анализируются в HTML до того, как попадут в браузер. Пример:
<aside id="primary" class="sidebar"
data-oweb='
<?php dynamic_sidebar( 'primary' ); ?>
'
>
optional default markup for mobile and no-js browsers here
</aside>
htmlspecialchars()
сENT_QUOTES
, чтобы напечатать его, например.<?php echo(htmlspecialchars($myValue,ENT_QUOTES)) ?>
Для получения дополнительной информации: php.net/manual/en/function.htmlspecialchars.php а> 24.01.2016