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

[JavaScript] Layer tevoorschijn toveren?

Anoniem
BasHamar
5 antwoorden
  • Ik heb een probleem, en wel dat het mij niet lukt om bij het laden van de pagina een layer tevoorschijn te toveren als het ware een popup. (Is dat een correcte Nederlandse zin?) Ik heb het geprobeerd met onderstaande broncode maar het vreemde is dat de code (handmatig) pas werkt nadat je 1 keer schijnbaar geen reactie krijgt. Daarna werkt het. Meerdere keren de functie aanroepen bij onload werkt niet. Het laten zien en verbergen is dus niet het probleem, maar het feit dat het niet werkt met de onload functie in JavaScript. [code:1:7a1ed9ee4c]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

    <head>
    <title>CSS Popup Test</title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

    <style type="text/css" media="all">
    <!–
    div#UCmessage {
    position: absolute;
    width: 30%;
    left: 30%;
    top: 20%;
    z-index: 1;
    display: none;
    margin: 0;
    padding: 5%;
    background-color: yellow;
    border: 3px solid black;
    }
    –>
    </style>
    <script type="text/javascript">
    <!–
    var isDOM=(document.getElementById)?true:false
    var isOpera=isDOM && window.opera

    function setBrowser()
    {
    if (navigator.appVersion.charAt(0) == "4"){
    if (navigator.appName.indexOf("Explorer") >= 0){
    isIE4 = true;}
    else{
    isNav4 = true;}}
    else if (navigator.appVersion.charAt(0) > "4"){
    isNav6 = true;}
    }

    function showHideUCmessage()
    {
    if(isDOM && !isOpera){
    if(getIdProperty( "UCmessage", "display") == "none"){
    setIdProperty( "UCmessage", "display", "block" );
    }else{
    setIdProperty( "UCmessage", "display", "none" );
    }
    }
    }

    function getIdProperty( id, property )
    {
    if (isNav6)
    {
    var styleObject = document.getElementById( id );
    if (styleObject != null)
    {
    styleObject = styleObject.style;
    if (styleObject[property])
    {
    return styleObject[ property ];
    }
    }
    styleObject = getStyleBySelector( "#" + id );
    return (styleObject != null) ?
    styleObject[property] :
    null;
    }
    else if (isNav4)
    {
    return document[id][property];
    }
    else
    {
    return document.all[id].style[property];
    }
    }

    function getStyleBySelector( selector )
    {
    if (!isNav6)
    {
    return null;
    }
    var sheetList = document.styleSheets;
    var ruleList;
    var i, j;

    /* look through stylesheets in reverse order that
    they appear in the document */
    for (i=sheetList.length-1; i >= 0; i–)
    {
    ruleList = sheetList[i].cssRules;
    for (j=0; j<ruleList.length; j++)
    {
    if (ruleList[j].type == CSSRule.STYLE_RULE &&
    ruleList[j].selectorText == selector)
    {
    return ruleList[j].style;
    }
    }
    }
    return null;
    }

    function setIdProperty( id, property, value )
    {
    if (isNav6)
    {
    var styleObject = document.getElementById( id );
    if (styleObject != null)
    {
    styleObject = styleObject.style;
    styleObject[ property ] = value;
    }
    }
    else if (isNav4)
    {
    document[id][property] = value;
    }
    else if (isIE4)
    {
    document.all[id].style[property] = value;
    }
    }

    function onWindowLoad()
    {
    setBrowser();
    showHideUCmessage();
    // alert('Functie onWindowLoad succesvol aangeroepen.');
    }

    window.onload = onWindowLoad();
    //–>
    </script>
    </head>

    <body>
    <!– Tijdelijk Under Construction bericht –>
    <div id="UCmessage">
    <h1>Under Construction</h1>
    <p>Er wordt op dit moment aan de site gewerkt, het kan dus zijn dat sommige pagina's niet werken of dat er zich fouten voordoen.<br /><br />Excuses voor het ongemak.<br /><br /><a href="javascript:showHideUCmessage();">Dit bericht sluiten.</a></p>

    </div>
    <p><a href="javascript:showHideUCmessage();">CSS Pop-up tonen/verbergen.</a></p>
    </body>
    </html>[/code:1:7a1ed9ee4c]Please help… :(

    - Bas
  • en als je de functie aanroep even in de body tag zet?

    body onload="blaat()" dus?
  • Riiiiiiight…. :-?

    Maar het werkt wel! :D

    Het vage is alleen dat ik nu in onWindowLoad() 2x de functie showHideUCmessage() moet aanoepen om hem direct te tonen terwijl het volgens mij al met 1x zou moeten werken…

    Heel vreemd, maar in ieder geval bedankt!

    Edit: het werkt alleen in N7, IE5.5 doet niets… Argh! Check.

    - Bas
  • IE55 blijft hangen op de "isNav6";
    [code:1:5fc95341a3]
    function setBrowser()
    {
    if (navigator.appVersion.charAt(0) == "4"){
    if (navigator.appName.indexOf("Explorer") >= 0){
    isIE4 = true;}
    else{
    isNav4 = true;}}
    else if (navigator.appVersion.charAt(0) > "4"){
    isNav6 = true;}
    }
    [/code:1:5fc95341a3]

    moz heeft nergens last van…
  • Aan een eventhandler geef je een referentie naar een functie op en niet een aanroep van een functie.

    Dus dit is

Beantwoord deze vraag

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