Échapper les Guillemets En HTML5, l'Attribut de Données à l'Aide de Javascript

Je suis à l'aide de jQuery .data() de travailler avec des personnalisés HTML5 attributs de données où la valeur de l'attribut doit être capable de contenir à la fois des apostrophes et des guillemets:

<p class="example" data-example="She said "WTF" on last night's show.">

Je sais à l'aide de codes de caractères comme &quot; dans le données de la valeur de l'attribut pourrait faire le travail ci-dessus, mais je ne peux pas toujours contrôler la façon dont les valeurs sont saisies. De Plus, j'ai besoin d'être en mesure d'utiliser des balises HTML dans la balise, comme ceci:

<p class="example" data-example="
She said "<abbr title="What The F***">WTF</abbr>" on last night's show.
">

Si une certaine forme de .replace() est la réponse, alors il doit être fait avant que la valeur est lue par .data()—peut-être en l'appliquant dans l'ensemble de <body>?

Normal barre oblique inverse s'échapper comme <abbr title="te\'st">WTF</abbr> ne fonctionne pas non plus.

Dans l'idéal, ce serait d'avoir la possibilité de travailler avec deux:

data-example="..."
et
data-example='...'

Mais si c'est la seule possible, alors je pourrais au moins rouler avec que. Des idées?

Mise à jour - un peu plus de contexte:

Je suis en train de travailler sur ce pour responsejs.com. Une application réelle de ce qui pourrait être à la seule charge d'une barre latérale pour les navigateurs au-dessus d'une certaine largeur (et ont-ils gérés dans le navigateur plutôt que de PHP). Dans le cas de WordPress par exemple, la barre latérale peut contenir des widgets, des images, etc. Les guillemets à l'intérieur des balises PHP sont un non-problème b/c ils sont analysés en HTML avant de le navigateur. Exemple:

<aside id="primary" class="sidebar" 

        data-oweb=' 

            <?php dynamic_sidebar( 'primary' ); ?>

        '
    >

    optional default markup for mobile and no-js browsers here

</aside>
  • JavaScript ne sera pas vous aider une fois que la page a rendus à corriger les citations de la balise. Doit être fait sur le server-side.
InformationsquelleAutor ryanve | 2011-08-31