Autor Zpráva
Daywith
Profil *
Dělám stránku ve Frontpagi- má permanetní záhlaví a zápatí a uprostřed IFRAME, ve kterém se načítají stránky různých délek-
potřebuji, aby se rámec podle jejich velikosti roztahoval.....neví někdo jak na to? Děkuji
BaTeCzKo
Profil
Jde to udělat javascriptem. Ale pokuď ovládáte pouze Frontpage, tak vám to bude k ničemu.
Daywith
Profil *
A jak to jde javascriptem? jscript na těch stránkách využívám pro kalendář. Nemůžete mi prozradit jak na to?- Nějakou šablonu Scriptu?....Děkuji
Anonymní
Profil *
radsi to udelej bez iframe...
Daywith
Profil *
A jak- nějakej návrh?....
Casero
Profil
no třeba mít to dole, a nahoře pomocí include..
BaTeCzKo
Profil
Takto:

Do sekce head vložte tento skript:

<script charset="windows-1250" type="text/javascript">
function vypocet_vysky() {
if (document.getElementById) {
var vyska_dokum = document.getElementById('id_ramu').contentWindow.document.body.scrollH eight;
vyska_dokum += 30; // přidat spodní okraj
if (vyska_dokum < 270) // minimální výška
vyska_dokum = 270;
document.getElementById('id_ramu').style.height = vyska_dokum;
}
}
window.onresize=vypocet_vysky;
</script>




a v těle stránky bude tag iframe:

<iframe onload="vypocet_vysky();"
id="id_ramu"
name="id_ramu"
src="vramu.html"
height="410"
width="50%"
frameborder="0"
scrolling="yes"
allowtransparency="false"
>
</iframe>


Atributy tagu iframe si můžete upravit podle potřeby, ale atribut id musí být stejný jako ve skriptu (v tomto příkladu "id_ramu"). Protože skript nebude v některých prohlížečich fungovat, je dobré mít v tagu iframe nějakou defaultní výšku height.
daywith
Profil *
děkuji-v IE mi to funguje bezvadně, ale OPERA a Firefox s tím mají problémy- v defaultu je iframe natažený správně, ale jakmile se v něm má otevřít další, menší stránka, zůstává stejně dlouhý...
daywith
Profil *
for Bateczko: Váš poslední příspěvěk mi na monitoru končí slovem Protože a dál nikam nevede- pokračovalo to ještě nějakou důležitou informací? Děkuji
BaTeCzKo
Profil
Toto?
Atributy tagu iframe si můžete upravit podle potřeby, ale atribut id musí být stejný jako ve skriptu (v tomto příkladu "id_ramu"). Protože skript nebude v některých prohlížečich fungovat, je dobré mít v tagu iframe nějakou defaultní výšku height.
Joker
Profil *
Daywith:
Nevím, k čemu to přesně používáte, pokud na nějakou speciální stránku se zvláštní funkcí, tak mě prosím ignorujte.
Ovšem pokud takto prostě řešíte hlavičku a patičku Vašeho webu, jen bych poznamenal, že to není zrovna ideální. Hlavní problém je ten, že například vyhledávače budou ve výsledcích hledání nabízet odkaz přímo na ten vnitřní iframe, ve kterém je obsah. V tom případě není nic horšího, než když má web obsah v jiném iframe než hlavičku, patičku a navigaci, protože návštěvník pak nemá možnost se ze stránky dostat.
daywith
Profil *
jojo- to je ono- díky.
habendorf
Profil
Váš poslední příspěvěk mi na monitoru končí slovem Protože a dál nikam nevede

To snad není takový problém někam si to vykopírovat :o)
daywith
Profil *
Joker:
Nene- dělám poměrně jednoduchou stránku- jen potřebuji mít stálou hlavu a patu,
uprostřed nichž se otvírají různé stránky, různých velikostí. Potřebuji aby to dobře šlapalo
v IE, Opeře i Firefoxu a toto bylo to nejlepší co mě napadlo. V IE to funguje, ale jinde
to zachovává rozměr té 1. stránky co se v iframu načte.
Nemáte nějaký návrh na lepší řešení? Děkuji.
Joker
Profil *
daywith:
Pokud ta stránka je na serveru umožňujícím nějaký skriptovací jazyk, asi bych ho využil radši než IFRAME plus JavaScript.
Základní nevýhoda toho řešení IFRAME + JS je, že klientský prohlížeč si s tím vůbec nemusí rozumět. A klient nemusí být zrovna klasický prohlížeč, může to být třeba Google robot a vy můžete mít zájem na tom, aby stránku korektně přečetl.

Nehledě na to, že řešení tohoto pomocí skriptu je opravdu jednoduché, potřebujete jen jeden příkaz. Vypadá to nějak takto:

hlavicka.html:
<div id="hlavicka">*text hlavičky*</div>

paticka.html:
<div id="paticka">*text patičky*</div>


nejaka_stranka.html:
(...)

<body>
<?php include("hlavicka.html"); ?>
<div id="obsah">
*obsah stránky*
</div>
<?php include("paticka.html"); ?>
</body>
</html>


To HTML jsem si celkem vymyslel, chtěl jsem jen znázornit, že v souborech hlavičky a patičky máte vykopírovaný jenom ten kousek HTML kódu pro hlavičku, resp. patičku. No a potom v PHP funkcí include() jednoduše vložíte ty soubory na příslušná místa.

Tuto metodu bych komentoval slovy klasika: "Jak primitivní. Ale jak účinné" ;-) Zvládne to i úplný neprogramátor (ověřeno) a pro začátek výborná metoda, jak nemuset kopírovat nějaký kód do každé stránky. Navíc to řešení neklade žádné nové nároky na prohlížeč, výsledkem je čisté HTML.
daywith
Profil *
Děkuji mnohokrát- jen bych Vás poprosil o pár rad amatérovi:
v souboru hlavicka.html mám příkazem <div></div> obepnout pouze tělo stránky - nebo můžu i head?(mám v něm
totiž nějaké styly, které v hlavičce potřebuji).
Dále - nemám defaultní stránku přejmenovat z html na php?- ve Vašem případě nejaka_stranka.php

Předem děkuji za odpověď.
Hraji si s tím, ale nedaří se mi to zprovoznit.
daywith
Profil *
Jo a ještě by mne zajímalo jak a kam napsat include path
-Píše mi to tuto chybovou hlášku:
Warning: Failed opening 'top.html' for inclusion (include_path='c:\php4\pear')
Joker
Profil *
Hlavičku máte společnou pro celou stránku na začátku toho nejaka_stranka. Takže v těch vkládaných už máte jenom to, co je uvnitř <body>
Ten include nedělá nic jiného, než že namísto toho příkazu include bude ve výstupu obsah daného souboru.

Takže pokud budete mít třeba
vnejsi.php
<!doctype(...)

<html>
<head>
(...)
</head>
<body>
<?php include("vnitrni.php"); ?>
</body>
</html>

a vnitrni.php:
<!doctype(...)

<h1>Ahoj</h1>


v prohlížeči uvidíte vnejsi.php:
<!doctype(...)

<html>
<head>
(...)
</head>
<body>
<h1>Ahoj</h1>
</body>
</html>


Takže hlavičku nechte společnou v tom hlavním souboru. Styly tedy přesuňte do hlavičky hlavního souboru.. právě proto bych volil mít celou hlavičku a patičku uvnitř jednoho HTML prvku s nějakým id-čkem, aby se na to pak v CSS souboru daly navázat styly.

S tou příponou máte pravdu, změňte na PHP.

Ohledně toho varování:
Pokud nemáte všechny soubory ve stejném adresáři, použijte ještě relativní cestu:
například pokud máte stránku web/stranka.php a hlavičku máte uloženou třeba ve web/includes/hlavicka.php, musíte to napsat:
include("includes/hlavicka.php");
Pokud byste to měl přesně obráceně- stránka v adresáři a soubory o adresář výš, tak:
include("../hlavicka.php");
No a pokud byste měl stránku někde uvnitř adresářové struktury a hlavičku třeba v tom web/includes, tak:
include("/includes/hlavicka.php");
daywith
Profil *
Mnohokrát děkuji za rady- perfektně to funguje.....díky
Joker
Profil *
Není zač. Tímhle způsobem začíná víc lidí ;-) Já sám jsem na svém úplně prvním webu měl navigaci a obsah v rámech a k PHP jsem se dostal tak, že jsem zkoumal, jak udělat totéž bez rámů :-)
Daywith
Profil *
Další den a další (doufám, že poslední) otázka:

Mohu ve funkci include odkázat na url stránku?
<?php include ("http://neco.cz/top.htm"); ?> mi nefunguje

Děkuji
Joker
Profil *
Jít by to mělo... a co přesně znamená, že to nefunguje?
Daywith
Profil *
V místě, kde se má objevit top.htm to píše:
Warning: Failed opening 'http://neco.cz/top.htm' for inclusion (include_path='c:\php4\pear')
Příde mi, že mám vše v naprostém pořádku- ale nemůže to najít cestu
-myslel jsem, že na url odkaz potřebuji nějakou jinou speciální variaci příkazu include.
Joker
Profil *
Vypadá to, že daný soubor neexistuje. Nebo je nějaký problém ve spojení.

Jinak to jde, sám jsem takhle zkusil napsat něco jako "zobrazovač stránek", kde zadáte adresu a skript vám načte stránku z té adresy. (Byl to jen takový pokus, jestli to funguje, ale v určitých případech se to dá i prakticky použít, třeba pokud jste za proxy serverem, který filtruje zakázané adresy :-) ) Takže to funguje.
Daywith
Profil *
Někde je u mě chyba. Zkusím se s tím ještě poprat, ale díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0