YUI Library JavaScript DHTML





    
User Agent Detection

/*margin and padding on body element
  can introduce errors in determining
  element position and are not recommended;
  we turn them off as a foundation for YUI
  CSS treatments. */
body {
  margin:0;
  padding:0;
}






    #dd1,#dd2 {
        position: relative;
        margin: 1em 1em 0;
        width: 175px;
        float: left;
        cursor: move;
    }
    #demo p {
        position: relative;
        padding: 1em;
        height: 100%;
        margin: 0;
        font-weight: bold;
        text-align: center;
        z-index: 20;
    }
    #dd1 p {
        border: 10px solid #ccc;
        background-color: #eee;
    }
    #dd2 p {
        border: 10px solid #e76300;
        background-color: #fff5df;
    }
    #demo .shim {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        z-index: 10;
    }




User Agent Detection



  

This example demonstrates the use of YAHOO.env.ua to identify the user's browser and to branch JavaScript logic based on what browser is being used.  (Note: We strongly recommend using feature detection rather than user-agent sniffing to fork code; only use this technique where it is absolutely necessary to do so — for example, in cases where browsers do not report their own capabilities accurately.)


      



    
        This is a very long select element for the example
        Apple
        Rutabaga
        Motor oil
    
    

    
        


            NO IFRAME

            Drag over the select
        


    

    
        


            IFRAME

            Drag over the select
        


    



YAHOO.util.Event.onDOMReady(function () {
    var dd1 = new YAHOO.util.DD('dd1');
    var dd2 = new YAHOO.util.DD('dd2');
    dd1.startDrag = function (x,y) {
        YAHOO.log("Drag started for element with no protection from the display bug", "info", "example");
    }
    if (YAHOO.env.ua.ie > 5 && YAHOO.env.ua.ie < 7) {
        // Create an iframe shim
        var shim = document.createElement('iframe');
        shim.src = 'about:blank';
        shim.className = 'shim';
        // Add the shim to the dragging element on the first startDrag
        dd2.startDrag = function (x,y) {
            var d = this.getEl();
            if (d.firstChild !== shim) {
                YAHOO.util.Dom.setStyle(shim, 'height',d.offsetHeight);
                d.insertBefore(shim, d.firstChild);
                YAHOO.log("Your browser is IE " + YAHOO.env.ua.ie + ".  Shim added.", "info","example");
            } else {
                YAHOO.log("Your browser is IE " + YAHOO.env.ua.ie + ", but the shim was already added", "info","example");
            }
        }
    } else { // Not shim worthy
        dd2.startDrag = function (x,y) {
            YAHOO.log("Your browser is NOT IE.  No shim added.", "info", "example");
        }
    }
});





   
  
yui_2.7.0b.zip( 4,431 k)