2010-05-19 6 views
2

J'utilise l'éditeur Jquery Wysiwyg et j'essaie de capturer le code HTML qui constitue la zone de contenu à stocker dans une base de données. Y at-il de toute façon obtenir html d'un élément et l'enregistrer en tant que chaîne? Mon code ressemble tihsJquery - Jquery Wysiwyg renvoie le html sous forme de chaîne

<iframe id="wysiwyg_IFrame"> 
    <html> 
     <head></head> 
     <body> 
      <ul> 
       <li>This is a test</li> 
      </ul> 
     </body> 
    </html> 
</iframe> 

Je soit souhaite obtenir une chaîne qui commence par <html>....</html> ou tout simplement le corps <body>...</body> personne ne sait si cela est possible? Merci

Répondre

3

je me suis dit la réponse et il était dans la documentation horrible du Jquery WYSIWYG. En fait, il n'était même pas dans la documentation, il était dans une partie du wiki. Pour obtenir le contenu que vous avez juste besoin d'utiliser les zones de texte et le nom des div .va() donc pour moi il était

$('#wysiwyg').val(); 

Si vous souhaitez définir le contenu comme je suis en train de d, ex. saisir quelque chose de la DB et le placer dans la zone de texte de la wysiwyg jquery lorsqu'un chargement de la page, vous devez utiliser la méthode setContent et il ressemblerait à ce

var content = 'place me in the text area'; 
$('#wysiwyg').wysiwyg('setContent', content); 

Merci pour toutes les réponses et oui .html() semble fonctionner dans tous les autres cas, mais ne fonctionnera pas avec le jquery wysiwyg.

1

Vous pouvez obtenir le code HTML d'un élément via la fonction jQuery html:

var htmlString = $('#wysiwyg_IFrame').html(); 

Alternativement, il suffit d'utiliser propriété innerHTML du DOMElement, il fait maintenant partie de la norme HTML5 et il a été pris en charge dans toutes les grandes (y compris les navigateurs IE   — en fait, ce fut une innovation de Microsoft) depuis des années:

var htmlString = $('#wysiwyg_IFrame')[0].innerHTML; 
0

cela devrait travaux:

var html = $("#wysiwyg_IFrame body").html(); 
0

var theHTML = $('#wysiwyg_IFrame').html();

0

$('#wysiwyg_IFrame').html() ne fonctionne pas?

Mise à jour:

Essayez .contents():

$('#wysiwyg_IFrame').contents().find('body').html() 

ou

$('#wysiwyg_IFrame').contents().html() 

De la documentation:

Le .contents() méthode peut également être utilisé pour obtenir le document de contenu d'un iframe, si l'iframe est sur le même domaine que la page principale.

+0

non pour une raison quelconque, il retourne juste une chaîne vide. C'est ce que je pensais que c'était mais ça ne fonctionnait pas.Je me demande si cela a quelque chose à voir avec l'éditeur jquery wysiwyg – McNabbToSkins

+0

@McNabbToSkins: Voir ma réponse mise à jour. –

0
$('wysiwyg_IFrame').content().find("body").html() 

retourne tout entre les balises du corps du fichier html chargé dans votre iFrame

Questions connexes