J'utilise actuellement ce qui suit l'obtenir le texte sélectionné à partir d'une page Web dans une extension Firefox personnalisée:Obtenir HTML de sélection/plage à partir d'une page Web dans Mozilla Firefox
getSelectedText: function(){
var textWindow = document.commandDispatcher.focusedWindow;
var text = textWindow.getSelection();
if (text == null) {text =' ';}
text = text.toString();
text = text.replace(/^\s*$/ , "");
text = text.replace(/\r/g, "\r");
text = text.replace(/\n/g, "\n");
text = text.replace(/^\s+|\s+$/g , " ");
text = text.replace(new RegExp(/\u2019/g), "'");
text = text.replace(new RegExp(/\u201A/g), ",");
text = text.replace(new RegExp(/\u201B/g), "'");
return {str:text};
}
Cela fonctionne très bien pour le texte brut .
Mon problème est que je veux que tous les éléments de la page Web copié ainsi (un peu comme les extraits du Web disposent dans Safari)
Cas d'utilisation - Si l'utilisateur sélectionne dans une page Web avec du texte formaté et images , Je veux que le HTML sous-jacent soit également copié, afin que je puisse le coller avec précision dans une autre fenêtre XUL - même envoyer le contenu sous forme de courriel HTML riche si je le souhaite.
Des pointeurs?
Juste par curiosité, comment proposez-vous de traiter les feuilles de style? – Joel
@Joel: Je ne pense pas que vous puissiez sortir la feuille de style, c'est-à-dire que vous capturez simplement le code HTML et c'est tout. –
Mais toutes les ressources liées (images, css, etc.) devront être résolues si vous voulez que l'affichage soit tout représentatif. – Joel