webForumDet fria alternativet

Validera iframe

14 svar · 574 visningar · startad av J.N.

J.N.Medlem sedan apr. 20031 660 inlägg
#1

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 SMedlem sedan dec. 20025 484 inlägg
#2

Hejsan!

Du befinner dig i dokumentet där <iframe>-taggen ligger? Då

window.frames["brodtext___Frame"].document.forms["formulärnamn"].elements["brodtext"].value
nitro2k01Medlem sedan aug. 20037 630 inlägg
#3

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. 20031 660 inlägg
#4

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&amp;Toolbar=Default">
</iframe>
</div>
J.N.Medlem sedan apr. 20031 660 inlägg
#5

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 SMedlem sedan dec. 20025 484 inlägg
#6

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&amp;Toolbar=Default">

?

Vad händer med koden på den sida du länkade till?

J.N.Medlem sedan apr. 20031 660 inlägg
#7

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 SMedlem sedan dec. 20025 484 inlägg
#8
<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. 20031 660 inlägg
#9

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 SMedlem sedan dec. 20025 484 inlägg
#10

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. 20031 660 inlägg
#11

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&amp;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 SMedlem sedan dec. 20025 484 inlägg
#12

Öppna FCKeditor/_samples/html/sample01.html

J.N.Medlem sedan apr. 20031 660 inlägg
#13

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>&nbsp;</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 SMedlem sedan dec. 20025 484 inlägg
#14

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. 20031 660 inlägg
#15

HEJ!

Jodå, det fungerar, du fick ju en :bire!

ASSS - jovisst, avvaktade om du/någon hade något ytterligare att tillägga.

Genererad på 378 ms · cache AV · v20260730165559-full.f96bc7eb