On Aug 5, 2009, at 9:42 PM, Jonas Sicking wrote:

2009/8/1 João Eiras <jo...@opera.com>:


How can one in a script check for UA support?
else if(localStorage){}
does not work for Opera**.

This obviously does not work because you need to prefix localStorage with window "if(window.localStorage)" else the script breaks because localStorage is a undefined identifier while window.localStorage looks up a property in the window. Different things, specific to ecmascript itself.

No, the window object is the global object where all global variables are defined. Try the following:

<script>
a = 10;
alert(window.a);
</script>

I think the point is that if there is no global variable of name "x", then "window.x" yields undefined, whereas "x" yields an exception.

That means that one way to check for the localStorage object is:

    if (window.localStorage) {
        // Code using localStorage here.
    }

If you instead do:

    if (localStorage) {
        // Code using localStorage here.
    }

Then you end up with code that simply throws an exception in browsers that don’t have localStorage.

    -- Darin


Reply via email to