14 svar · 574 visningar · startad av J.N. 19 jan. 2006
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Jag försöker validera en iframe, men får inte till det, ens med Google. Nu vänder jag mig till wF.
Iframen heter brodtext___Frame, textarean (det som kan hämtas med request.form) heter brodtext.
Hur skriver man?
Om det är någon som använder FCKeditor, vet ni exakt hur frames och fält hänger ihop.
Peter S Medlem sedan dec. 2002 5 484 inlägg
Hejsan!
Du befinner dig i dokumentet där <iframe>-taggen ligger? Då
window.frames["brodtext___Frame"].document.forms["formulärnamn"].elements["brodtext"].value
nitro2k01 Medlem sedan aug. 2003 7 630 inlägg
Validera som i w3-validera? Jag tror inte att _ är ett tillåtet tecken i name och id i XHTML.
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
PeterS:
Tyvärr fungerar det inte, jag tror det är svårlöst efter att ha letat på Sourceforge https://sourceforge.net/forum/message.php?msg_id=3378302
Problemet är att det inte verkar bli en "vanlig" iframe.
SourceForge skrev:
If replacing a textarea you must update the textarea before you try to validate it. All of the information in the editor is stored in an iframe.
Så här ser koden ut på sidan med iframen.
<div>
<input type="hidden" id="innehall" name="innehall" value="bef text på posten" style="display:none" />
<input type="hidden" id="innehall___Config" value="" style="display:none" />
<iframe id="innehall___Frame" src="/admin/fckeditor/editor/fckeditor.html?InstanceName=innehall&Toolbar=Default">
</iframe>
</div>
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
nitro2k01 skrev:
Validera som i w3-validera? Jag tror inte att _ är ett tillåtet tecken i name och id i XHTML.
Gjorde ett test med kod som ovan, det ska inte påverka.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="sv">
W3C skrev:
This Page Is Valid XHTML 1.0 Transitional!
Peter S Medlem sedan dec. 2002 5 484 inlägg
Fungerar det då inte med:
window.frames["innehall___Frame"].document.forms["formulärnamn"].elements["brodtext"].value
<iframe [b]name="innehall___Frame"[/b] id="innehall___Frame" src="/admin/fckeditor/editor/fckeditor.html?InstanceName=innehall&Toolbar=Default">
?
Vad händer med koden på den sida du länkade till?
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Tyvärr inte.
Den sida man länkar till i iframen är själva editorn, men det är inte alldeles tydligt vad man kommer till.
En del av den sidan går till en iframe till, och det är själva editor-delen, tror jag.
<iframe id="eEditorArea" name="eEditorArea" height="100%" width="100%"
frameborder="no" src="fckblank.html"></iframe>
Om du vill gräva vidare, titta på http://www.fckeditor.net .
Peter S Medlem sedan dec. 2002 5 484 inlägg
<iframe [b]name="innehall___Frame"[/b]...
// <textarea>n (i demot på FCK-hemsidan är id=eSourceField)
window.frames["innehall___Frame"].document.getElementById("brodtext")
?
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Förstår inte vad du menar?
Provade med följande, men det ger inget resultat, det är inget objekt.
alert(window.frames["innehall___Frame"].document.getElementById("brodtext").value);
Peter S Medlem sedan dec. 2002 5 484 inlägg
För mig fungerar det i alla fall. Däremot visade det sig att innehållet i <textarea>n alltid är tomt.
Istället testade jag
window.frames['innehall___Frame'].window.frames['eEditorArea'].document.getElementsByTagName('body').item(0).innerHTML
...med framgång.
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Super för dig, jag famlar i blindo!
Så här ser det ut hos mig:
Adminsida:
<input type="hidden" id="brodtext" name="brodtext" value="bef posttext" style="display:none" />
<input type="hidden" id="brodtext___Config" value="" style="display:none" />
<iframe id="brodtext___Frame" src="/admin/fckeditor/editor/fckeditor.html?InstanceName=brodtext&Toolbar=Default" width="100%" height="500" frameborder="no" scrolling="no">
</iframe>
Iframen ovan:
<iframe id="eEditorArea" name="eEditorArea" height="100%" width="100%" frameborder="no" src="fckblank.html"></iframe>
Peter S Medlem sedan dec. 2002 5 484 inlägg
Öppna FCKeditor/_samples/html/sample01.html
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Jodå, nu fick jag till det! :bire
var longtext = window.frames['brodtext___Frame'].window.frames['eEditorArea'].document.getElementsByTagName('body').item(0).innerHTML;
if (longtext.length == 0 || longtext == "<P> </P>"){
alert("Fill in Long text.");
window.frames['brodtext___Frame'].window.frames['eEditorArea'].focus();
return (false);
}
Ett litet problem uppstod dock, den säger ej till om man tar bort texten när man redigerar en post. Det finns något kvar ändå.
Det visade sig vara en P-tagg, som jag också får kontrollera efter.
När man skapar en ny post, är textarean tom, dvs 0.
Lägger man in text, tar bort, kommer P-taggen.
Därför behövs samma validering också för nya poster.
Tänkte också en stund på om inte item(0) blir fel, den ligger ju inte först på sidan? Nä, det är ju item(0) i framen, och det är ju endast ett fält där, kom jag på efter ett tag!
TACK för hjälpen!
Peter S Medlem sedan dec. 2002 5 484 inlägg
Hm, ok. Huvudsaken är att det fungerar, vilket det alltså gör?
Glöm inte ASSS i sådana fall ;)
J.N. Medlem sedan apr. 2003 1 660 inlägg
HEJ!
Jodå, det fungerar, du fick ju en :bire!
ASSS - jovisst, avvaktade om du/någon hade något ytterligare att tillägga.