Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Script werkt niet in Firefox, waarom?

Anoniem
meneer_ed
7 antwoorden
  • Het is de bedoeling om vanuit een button een gecenterde popup op te roepen. Heeft iemand een idee waarom dit wel in IE, maar niet in Firefox werkt? En misschien heeft diegene ook wel een oplossing?


    [code:1:faf920e93e]<script language="javascript">
    <!– winBRopen BEGIN
    function winBRopen(theURL, Name, popW, popH, scroll) { // V 1.0
    if (document.all) {
    /* the following is only available after onLoad */
    w = document.body.clientWidth;
    h = document.body.clientHeight;
    }
    else if (document.layers) {
    w = window.innerWidth;
    h = window.innerHeight;
    }
    var winleft = (w - popW) / 2;
    var winUp = (h - popH) / 2;
    winProp = 'width='+popW+',height='+popH+',left='+winleft+',top='+winUp+',scrollbars='+scroll+',resizable'
    Win = window.open(theURL, Name, winProp)
    if (parseInt(navigator.appVersion) >= 4) { Win.window.focus(); }

    }
    // winBRopen END –>
    </script>

    </head>

    <body>
    <form>
    <INPUT TYPE=button VALUE="Button" onClick="winBRopen('http://www.daanooms.nl/buttonpages/buttonpage1.htm','windowname','334','480','no')" style="font-family: Arial"></font>
    </form>
    </body>
    [/code:1:faf920e93e]
  • [quote:2337124c6b="daano"]Het is de bedoeling om vanuit een button een gecenterde popup op te roepen. Heeft iemand een idee waarom dit wel in IE, maar niet in Firefox werkt? En misschien heeft diegene ook wel een oplossing?
    [/quote:2337124c6b]
    Ik heb wel een idee. In je controle vindt (Mozilla) Firefox niks van zijn gading.
    document.all is voor IE, document.layers voor (in ieder geval) NS4. Hierdoor worden de variabelen w en h nooit geinitialiseerd.
    Je zal dus nog een extra controle moeten uitvoeren, en wel met document.getElementById.
    [code:1:2337124c6b]
    else if (document.getElementById) {
    w = window.innerWidth;
    h = window.innerHeight;
    }
    [/code:1:2337124c6b]
    Dat zou het moeten doen.
  • volgens mij werkt het, hartelijk dank.

    Is het mogelijk de venstergrootte (width) te bepalen exclusief de mogelijke openstaande ruimte voor favorieten of bladwijzers?
  • Dat kan met innerWidth.
    Zie deze link: http://www.mozilla.org/docs/dom/domref/dom_window_ref28.html#1017395

    innerWidth geeft dus de breedte van het beschikbare content-gebied (dat is even krom :o , maar ik hoop dat je begrijpt wat ik bedoel :wink: )
  • Even kijken hoor. Zie http://www.daanooms.nl/button.htm (de bovenste rij buttons)


    Het werkt zowel in IE als in FF bij een volledig scherm. Maar als ik of de favorieten (IE) openzet of bladwijzers (FF) dan worden de popups zowel in IE als in FF raar uitgelijnd. In ieder geval niet meer in het midden.

    [code:1:576442aa8f]
    <script>
    <!– winBRopen BEGIN
    function winBRopen(theURL, Name, popW, popH, scroll) { // V 1.0
    if (document.all) {
    /* the following is only available after onLoad */
    w = document.body.clientWidth;
    h = document.body.clientHeight;
    }
    else if (document.layers) {
    w = screen.availWidth;
    h = screen.availHeight;
    }
    else if (document.getElementById) {
    w = window.innerWidth;
    h = window.innerHeight;
    }
    var winleft = (w - popW) / 2;
    var winUp = (h - popH) / 2;
    winProp = 'width='+popW+',height='+popH+',left='+winleft+',top='+winUp+',scrollbars='+scroll+',resizable'
    Win = window.open(theURL, Name, winProp)
    if (parseInt(navigator.appVersion) >= 4) { Win.window.focus(); }

    }
    // winBRopen END –>
    </script>

    <form>
    <font face="Arial">
    <INPUT TYPE=button VALUE="Button"
    onClick="winBRopen('http://www.daanooms.nl/buttonpages/buttonpage1.htm','windowname','334','480','no')" style="font-family: Arial"><INPUT TYPE=button VALUE="Button"></font></form>

    [/code:1:576442aa8f]
  • Dat komt omdat de browsers precies doen wat jij wil:
    Ze nemen de beschikbare breedte van je browservenster, trekken daar de breedte van je popup af, en delen dat door twee.
    De breedte van je browservenster is niet de breedte van je scherm…
    Als je de popup midden op je scherm wilt laten zien, dan zul je de window.screen.width moeten gebruiken.
  • Nou kijk, dat absoluut in het midden van het screen is ook weer niet de bedoeling. Want dan hou je "problemen" met wanneer de Favorieten open staan.

    Als het even kan zou ik graag willen dat de zichtbare paginabreedte en - hoogte van de openstaande internetpagina kan worden bepaald. Dit is dus exclusief bijvoorbeeld Favorieten (of bladwijzers) als je die open hebt staan. Deze nemen meestal aan de linkerzijde van je screen nogal wat ruimte in. Ik vroeg me af of je deze laten we zeggen schone screensize kan bepalen en de popup dan daarop kan centreren.

    Edit: Heb nog even gekeken, je hebt gelijk denk ik nu, het ligt aan mijn eigen opdracht (formule), maar ik kom erniet uit om rekening te houden met de breedte van de openstaande favorieten. Is er iemand met een ideetje?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.