Autor Zpráva
Ofi
Profil
Zdravim všechny,
mám funkci počítající výšku iframe podle načítané stránky uvnitř iframe, tato funkce se spouští v tagu iframe takto:
<iframe id="topic" name="topic" src="aktuality.php" width="560" height="800" 
 onload="calcHeight();" frameborder="0" scrolling="no">...</iframe>


problém nastává při validování stránek - v hlavičce při validaci musí být uvedeno:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
(popř.Transitional)

pokud je to uvedeno - nefunguje onload, stránka není validní (1 chyba - event v iframe)

pokud není uvedeno - onload funguje, ale stránka není validní!(1chyba + 1 warn-missing doctype)

chtěl jsem se tedy zeptat - je nějaká jiná možnost, jak zapnout funkci calcHeight() pokaždé když se změní obsah iframu aniž bych tím přišel o validitu stránek?

pokud ne - budu muset předělat komplet přes Ajax - ale rád bych se tomu u tohoto projektu vyhnul...
Chamurappi
Profil
Reaguji na Ofiho:
Validátor jde v tomto případě ošálit mnoha způsoby. K čemu potřebuješ validitu? Proč se snažíš mít validní kód?
Používáš HTML nebo XHTML? (To z <!doctype> deklarace nemůžu určit.)

pokud je to uvedeno - nefunguje onload
O tom pochybuji. Možná ti nefunguje správně funkce calcHeight, ale událost onload nejspíš vyvolána bude.
Ofi
Profil
Chamurappi
z doctype je vidět že jde o XHTML 1.0, validita je vizitka web programátora, stejně jako spisovatel chce mít všechno gramaticky správně tak i já chci mít validní stránky (nenapadlo mě teď lepší přirovnání)..

jakými způsoby lze ošálit validátor? i když bych radši validátor neošálil a chtěl bych použít validní způsob - pořád lepší něco než nic.

O tom pochybuji. Možná ti nefunguje správně funkce calcHeight, ale událost onload nejspíš vyvolána bude.
netuším či je to tak či onak, každopádně to nic neřeší na problému validita.:)
edit: nefunkcnost calcHeight pri doctype byla zpusobena opomenutim
+"px";
pri nastaveni vysky..takze ted uz jen vyresit tu validitu :)
Radek9
Profil
z doctype je vidět že jde o XHTML 1.0
Ale není vidět jestli jde o HTML nebo XML+XHTML. Musel by jsi sem napsat mime type.
jakými způsoby lze ošálit validátor?
Třeba javascriptem.
Ofi
Profil
Radek9
Třeba javascriptem.
dík :D teď toho vim tolik co předtim xD sem třeba doufal že mi ten způsob třeba předvedeš :)
Radek9
Profil
Uděláš si soubor "iframe.js", ve kterém bude:
document.write('<iframe id="topic" name="topic" src="aktuality.php" width="560" height="800"  onload="calcHeight();" frameborder="0" scrolling="no">...</iframe>');

A pak si na stránku vložíš:
<script src="iframe.js" type="text/javascript"></script>

A jentak pro zajímavost. Můžeš sem napsat ten mime type? (<meta http-equiv="Content-Type" content="text/html; charset=utf-8">)
Ofi
Profil
aha , super to me nenapadlo. takze se to neda bez ošálení validně?

používám application/xhtml+xml, ale i kdyžtam dam text/html tak se to chova naprosto shodně (ty moje stránky)
Radek9
Profil
Ofi:
Pokud jsi v XHTML, tak myslím, že ne.
kdyžtam dam text/html tak se to chova naprosto shodně
Ano chová, ale už to není XHTML, ale HTML.
Ofi
Profil
Radek9
Ano chová, ale už to není XHTML, ale HTML
jasný ale tady šlo o funkčnost že..
Chamurappi
Profil
Reaguji na Radka9:
Uděláš si soubor "iframe.js", ve kterém bude
To je ale pořádná prasárna. Nedoporučuji.
Obsluhu události jde přeci krásně přiřadit JavaScriptem:
document.getElementById("topic").onload = calcHeight;

A jentak pro zajímavost. Můžeš sem napsat ten mime type?
Na <meta> značce nikdy nezáleží, tam patří vždy „text/html“, nic jiného tam nedává smysl. Záleží na skutečné hlavičce Content-Type.


Reaguji na Ofiho:
používám application/xhtml+xml, ale i kdyžtam dam text/html tak se to chova naprosto shodně
… a tu skutečnou hlavičku zjevně neměníš. Používáš pořád HTML, tedy „text/html“. Proto ti funguje document.write, proto nemáš kód validní.

validita je vizitka web programátora, stejně jako spisovatel chce mít všechno gramaticky správně
Tvůj kód je vnímán jako nevalidní HTML vším, co není oficiální W3C validátor (prohlížeči, vyhledávači, českým validátorem). To je dle tebe dobrá vizitka?

i když bych radši validátor neošálil a chtěl bych použít validní způsob - pořád lepší něco než nic
W3C nebylo před dvanácti lety příliš prozíravé, aby dalo <iframu> událost onload, proto si na to teď validátory stěžují. Snažíš se dodržovat pradávné specifikace, ale chceš používat devět let staré novinky, proto musíš kontrolu ošálit.
Ofi
Profil
Tvůj kód je vnímán jako nevalidní HTML vším, co není oficiální W3C validátor (prohlížeči, vyhledávači, českým validátorem). To je dle tebe dobrá vizitka?
k tomu jsem byl vždy směrován - validní dokument = dobrý dokument - očividně to tak není - ale co je pak ta "dobrá vizitka programátora"? grafika stránek? - ne té se to netýká, funkčnost stránek? - taky ne, protože funkčnosti se dá dosáhnout i ne příliš pěknými způsoby - co pak teda?

header
neznáte nějaké stránky, které pojednvají o všech možnostech, variantách a nastaveních headerů s vysvětleními? myslím že je načase (pro mne) se na to "konkrétně" podívat. vždy jsem "zahlíd" co jsem potřeboval, ale nyní si říkám, že bych si měl doplnit informace o headeru..:-X
Bubák
Profil
Zajímavý článek na téma validita, sterilita, sexualita a kompatibilita.
http://latrine.dgx.cz/konec-w3c-prostrednictvim-psa-ii
Chamurappi
Profil
Reaguji na Ofiho:
ale co je pak ta "dobrá vizitka programátora"?
Řekl bych, že půjde o strojově neměřitelné kvality.
Čím složitější je obor, tím obtížněji se hledají lajkům srozumitelná objektivní měřítka pro odvedenou práci — obvykle se pak posuzování zjednodušuje na něco snadno pochopitelného a přišpendlí se k němu jakási důvěra v profesionalitu. Takže dobrou vizitkou lékaře jsou živí pacienti a dobrou vizitkou kodéra funkční stránky.

funkčnost stránek? - taky ne, protože funkčnosti se dá dosáhnout i ne příliš pěknými způsoby
Validity se dá též dosáhnout nepříliš pěknými způsoby.

vždy jsem "zahlíd" co jsem potřeboval, ale nyní si říkám, že bych si měl doplnit informace o headeru..:-X
Nepotřebuješ znát všechny HTTP hlavičky, stačí ti zahlédnout jen ten Content-Type a pochopit, jaký význam má pro prohlížeče.
Ofi
Profil
jak jinak se dá Content-type nastavovat krom meta tagu?
Chamurappi
Profil
Reaguji na Ofiho:
Přenastavením serveru či skriptovacím jazykem na straně serveru (PHP, ASP.NET)…

krom meta tagu?
<meta> značka neúčinkuje, protože do ní se dívají prohlížeče pouze při (skutečném) typu „text/html“ za účelem zjištění kódování.

Doporučuji ti Content-Type neměnit, „text/html“ má všeobecně nejlepší podporu mezi prohlížeči. Internet Explorer nepodporuje „application/xhtml+xml“.
Ofi
Profil
Chamurappi
oki děkuji za vysvětlení ;)To bude asi vše :)
Toto téma je uzamčeno. Odpověď nelze zaslat.