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
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
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
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
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
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).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0