18. oktober 2004 - 19:00Der er
8 kommentarer og 1 løsning
innerHTML og Firefox. Hvad kan bruges i stedet?
Hejsa, Jeg har denne kodelinie, der smider indholdet af iFramen iView ind i variablen htmlCode: var htmlCode = iView.document.body.innerHTML;
Den gør som den skal i IE, men i Firefox bliver der ikke lagt noget data ind i variablen. Jeg har læst mig frem til, at innerHTML åbenbart ikke er understøttet af mozilla/firefox, så hvad kan jeg gøre i stedet for? Jeg har prøvet følgende kode, som heller ikke virker (hverken i IE eller Firefox): var htmlCode = document.getElementById('iView').innerHTML;
Den perfekte løsning skulle jo gerne virke på alle browsere.
Download ned det samme Mozilla og FireFox. Uden dem kan du ikke lave HTML, der skal bruges til noget. Havde du dem selv på din PC, ville du kunne forvisse dig om, det er noget vrøvl, du har læst ;o)
... fungerer i stort set alle browsere på markedet. Godtnok er innerHTML ikke med i W3C's DOM-bindings - men den er ikke desto mindre understøttet af alle væsentlige browsere :)
Jeg bruger skam aldrig andet end FireFox, og har derfor selv oplevet problemet. Det kode som du skriver virker helt fint, men jeg kan altså stadig ikke få det andet kode til det. Måske det bare skal skrives på en anden måde...
Så kommer hele funktionen da her: function ProcessNews() { // Assign the HTML code to a hidden form variable var htmlCode = iView.document.body.innerHTML; //var htmlCode = document.getElementById('iView').innerHTML;
document.frmNews.newsPost.value = htmlCode;
// Make sure that all fields are completed if(document.frmNews.newsPost.value == '') { alert('Please enter some content for this news post.'); iView.focus(); return false; } return true; }
Som den er nu, virker den helt fint i IE, men ikke i FireFox. Den linie der er kommenteret væk burde (efter min bedste overbevisning) virke i FireFox, men det gør den desværre ikke.
Nej, det gør den ikke, fordi innerHTML på et iframe-element ikke er noget ...
For et iframe-element indeholder et window-element, som indeni indeholder et html-dokument, som så indeholder html-kode, så du er mindst 2 generationer galt, hvilket også fremgår af dit IE-kald, hvor du jo også bruger document.body imellem !-)
F.eks. kan du bruge:
var htmlCode = window.frames['iView'].document.body.innerHTML;
Ja, undskyld, jeg overvejede om jeg skulle skrive en rettelse, da jeg opdagede, at det jo nok var nødvendigt at fortælle, at det skulle have et name, men tænkte, det ser han jo nok ret hurtigt !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.