webForumDet fria alternativet

Validera iframe

JavaScript

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

Medlem sedan apr. 20031 660 inlägg
Frågan#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.

Medlem sedan dec. 20025 483 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
Medlem sedan aug. 20039 340 inlägg
#3

Validera som i w3-validera? Jag tror inte att _ är ett tillåtet tecken i name och id i XHTML.

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>
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!

Medlem sedan dec. 20025 483 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?

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.

Medlem sedan dec. 20025 483 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")

?

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);
Medlem sedan dec. 20025 483 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.

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>
Medlem sedan dec. 20025 483 inlägg
#12

Öppna FCKeditor/_samples/html/sample01.html

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!

Medlem sedan dec. 20025 483 inlägg
#14

Hm, ok. Huvudsaken är att det fungerar, vilket det alltså gör?

Glöm inte ASSS i sådana fall ;)

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.

255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)