Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
Dají se nějak zjistit a předat do JS vlastnosti width a height z celé HTML stránky, řekněme když budou uvedeny v <body> nebo třeba v inline stylopisu ? Do nového okna otvírám vždy stránku "index.php" (potřebuju tam .php, jinak je to funkcí načítaný HTML), která má strukturu:
<?php function write_html() { ?> následuje kompletní HTML včetně DOCTYPE, hlaviček atd. <?php return; } write_html(); ?> Potřeboval bych do jedné JS funkce dostat nějaké parametry "šířka" a "výška", které by se definovaly někde v té stránce "index.php". Může to být v podstatě kdekoliv, hlavně aby to bez problému fungovalo. var width = document.neco.width; var height = document.neco.height; Tak jsem trochu hledal, no odpovíte mi na to, zda to jde takto ? Resp. vezmou se CSS vlastnosti z toho DIVU ? var width = document.getElementById("divID").style.width; var height = document.getElementById("divID").style.height; v "index.php" pak <?php function write_html() { ?> <HTML> <HEAD></HEAD> <body> <div id="divID" style="width:500px;height:300px;"> </body> </html> <?php return; } write_html(); ?> |
||
Mufna Profil |
#2 · Zasláno: 27. 6. 2009, 16:22:57
Tak jsem se dobral k tomuhle skriptu, má fungovat tak, že po kliknutí na odkaz se má tento odkaz otevřít v novém okně, které má mít šířku a výšku takovou, jakou má div v odkazu (ve stránce načítané do nového okna). V příslušném divu je šířka a výška určena inline stylem. Myslím že samotné zápisy jsou OK a samy o sobě by měly fungovat, pokud se tomu ale ještě dá správná logika.
function openLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i<anchors.length; i++) { var anchor = anchors[i]; if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") { var newwin; anchor.onclick = function externalLinks() { if (newwin && !newwin.closed) {newwin.close()} var mydiv = document.getElementById("ref"); var width = parseInt(mydiv.style.width); var height = parseInt(mydiv.style.height); var left = (screen.width - width)/2; var top = (screen.height - height)/2; var params = 'width='+width+', height='+height; params += ', top='+top+', left='+left; params += ', directories=no'; params += ', location=no'; params += ', menubar=no'; params += ', resizable=yes'; params += ', scrollbars=no'; params += ', status=no'; params += ', toolbar=no'; newwin=window.open(this.href,'win', params); if (window.focus) {newwin.focus()} return false; } } } } window.onload = openLinks; |
||
sysel Profil |
#3 · Zasláno: 27. 6. 2009, 22:52:15
Promiňte, že zas remcám, ale tohle taky trochu funguje:
<body onLoad="alert('šířka je: '+document.width+' a výška je: '+document.height)"> Není však patrné, zda se skutečnou šířku a chcete jenom dozvědět, nebo ji nastavit. |
||
Mufna Profil |
#4 · Zasláno: 29. 6. 2009, 14:45:29 · Upravil/a: Mufna
sysel
skutečnou šířku chci každému novému oknu nastavit podle vlastnotní vnitřního obsahu načítané stránky. Něco jako kdybych načítal stránku, kde by byl jen jeden obrázek a chtěl bych, aby se otevřelo okno stejně velké jako jsou rozměry toho obrázku. V mém případě ale nejde vždy o obrázky, může to být jakýkoliv obsah - všelijak členěná stránky, flash, a třeba i ten obrázek. Proto je na té načítané stránce vždy nějaký obalový div s tím požadovaným obsahem, a tomu divu dávám inline stylem rozměry width a height. A tyhle rozměry bych potřeboval vždy použít pro každé nově otevírané okno. |
||
peta Profil |
#5 · Zasláno: 30. 6. 2009, 10:47:55
Mufna
Tohle je komplikovane :) Problem je v tom, ze prohlizec za urcitych okolnosti zobrazi nebo nezobrazi listu s adresou a ruzna tlacitka. IE FF O se chova jinak. Kdo googluje, najde. Na xatchat.sk jsem to videl funkcni pro FF. |
||
Mufna Profil |
#6 · Zasláno: 30. 6. 2009, 14:20:51
peta
Problem je v tom, ze prohlizec za urcitych okolnosti zobrazi nebo nezobrazi listu S tím já ale problém nemám, to je přece v tom skriptu ošetřené. Jde mi o to zjištění šířky a výšky z jednoho konkrétního <divu> stránky načítané do nového okna (ještě předtím, než se otevře, aby si tyhle parametry mohlo přelouskat). |
||
Časová prodleva: 15 let
|
0