Invisible Délimiteur pour les Chaînes de caractères en HTML
J'ai besoin d'un moyen d'identifier certaines chaînes dans le balisage HTML. Je sais ce que les cordes sont, mais il est possible qu'ils pouvaient être des sous-chaînes d'autres chaînes dans le document. Pour les trouver, j'ai sortie un séparateur spécial de caractères (en utilisant \032
). Au chargement de la page, nous allons à travers le HTML et d'enregistrer la position des cordes, et de supprimer le séparateur.
Malheureusement, la plupart des navigateurs montrent le caractère délimiteur jusqu'à ce que nous pouvons trouver et de les supprimer tous. Je voudrais éviter si possible. Est-il un caractère ou d'une chaîne de caractères qui sera conservé dans le contenu HTML (si un commentaire ne fonctionnent pas) mais ne sera pas visible pour l'utilisateur? Il doit aussi être quelque chose qui est assez peu probable à apparaître à côté d'une chaîne de caractères, donc quelque chose comme
ne fonctionne pas non plus.
EDIT: Désolé, j'ai oublié de mentionner que les chaînes seront dans les attributs, de sorte que toute sorte de balise ne fonctionnent pas.
- Peut-être vous pouvez simplement utiliser un tas de
<span>
tags? - Je suis d'accord Thomas, mais je voudrais ajouter qu'il devrait ajouter une classe à eux, comme des <span class='EOL" ></span> C'est pourquoi ils seraient faciles à trouver et à manipuler.
Vous devez vous connecter pour publier un commentaire.
‌
- largeur zéro non-menuisier (voir http://htmlhelp.org/reference/html40/entities/special.html)Sur la chance que cela apparaît déjà dans votre texte, de le doubler en place (par exemple:
‌‌mytext‌‌
Modifier en réponse au commentaire: fonctionne dans Firefox 3. Notez que vous avez à la recherche de la valeur Unicode de l'entité.
Vous pourriez insérer dans
<span>
éléments. Cela ne fonctionne que pour une page de texte (pas d'attributs, par exemple).Sinon, vous pouvez insérer un caractère d'espacement que votre programme n'a pas déjà sortie dans le cadre de l'HTML, comme un caractère de tabulation (
\x09
), une tabulation verticale (\x0b
), un simple retour chariot (\x0d
) — sans un retour à la ligne à côté d'elle, ala Windows encodage de texte — ou, tout juste un octet nul (\x00
).foo\x{0d}\x{0a}bar
est le Windows-ligne standard méthode de formatage et ne correspondent pas/\x0d(?[^\x0a]*)\x0d
. Bravo à rappeler les vieux Mac encodage! Jamais essayétype
-ing un fichier dans ce codage sur un terminal server de Windows? Imprime sur une seule ligne! 🙂La meilleure chose que je ne désire placer, ce qui n'est pas visible sur le navigateur, sera une paire de balises avec certains d'identité spéciale, comme
<span id="delimiter" class="Delimiter"></span>
. Ce ne sera pas affiché sur le contenu, alors que cela peut être présent dans la doc. Vous n'avez pas besoin de les enlever.Vous pouvez utiliser de gauche à droite (LTR) marques. Est-ce une sorte de XSS, les tests? Si oui, cela pourrait être d'intérêt: Souiller le support de PHP