Question

J'ai un plugin jquery qui fonctionne sur tous les navigateurs, sauf opéra. La fonction removeHighlight se déclenche, mais le HTML ne change pas. Pour autant que je peux voir IE, FF, Chrome et Safari travail comme prévu.

Mon exemple peut être trouvé ici: http://www.pritaeas.net/public/jquery/plugin-dev/

L'URL du plug-in est: http://www.pritaeas.net/public/jquery/ plugin-dev / jquery.highlight.js

En fait, je veux juste enlever toutes les balises span avec une classe spécifique, en laissant le texte en l'état.

Quelqu'un peut-il expliquer pourquoi l'opéra répond différemment, et fournir une solution ou un travail autour?

Merci.

Était-ce utile?

La solution

Le problème est dans votre fonction removeHighlight, en regex. Je ne sais pas pourquoi, mais votre regex ne fonctionne pas si elle est sous forme:

var source = new RegExp("<span class=.?" + options["cssClass"] + ".?>(.*?)</span>", "ig");

en particulier la première .? est problématique dans ce cas. Lorsque vous modifiez à . ou \", votre regex fonctionne très bien. Vous pouvez utiliser le formulaire de \", comme en HTML correctement formaté tous les attributs doivent être mis entre parenthèses, et vous pouvez les ajouter dans la fonction highlight aussi:

var target = "<span class=\"" + options["cssClass"] + "\">%&</span>";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top