Я использую 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>