launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java
changeset 1927 cff680298793
parent 1908 4f4554f69892
child 1928 b5ac0a273dfe
     1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java	Fri Mar 25 11:12:16 2016 +0100
     1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/impl/Console.java	Mon Apr 18 07:32:35 2016 +0200
     1.3 @@ -40,24 +40,29 @@
     1.4      }
     1.5      
     1.6      @JavaScriptBody(args = {"id", "attr"}, body = 
     1.7 -        "return window.document.getElementById(id)[attr].toString();")
     1.8 +        "var e = window.document.getElementById(id);" +
     1.9 +        "return e ? e[attr].toString() : null;"
    1.10 +    )
    1.11      private static native Object getAttr(String id, String attr);
    1.12      @JavaScriptBody(args = {"elem", "attr"}, body = 
    1.13 -        "return elem[attr].toString();")
    1.14 +        "return elem ? elem[attr].toString() : null;")
    1.15      private static native Object getAttr(Object elem, String attr);
    1.16  
    1.17      @JavaScriptBody(args = {"id", "attr", "value"}, body = 
    1.18 -        "window.document.getElementById(id)[attr] = value;")
    1.19 +        "var e = window.document.getElementById(id);\n"
    1.20 +      + "if (e) e[attr] = value;"
    1.21 +    )
    1.22      private static native void setAttr(String id, String attr, Object value);
    1.23      @JavaScriptBody(args = {"elem", "attr", "value"}, body = 
    1.24 -        "elem[attr] = value;")
    1.25 +        "if (elem) elem[attr] = value;")
    1.26      private static native void setAttr(Object id, String attr, Object value);
    1.27      
    1.28      @net.java.html.js.JavaScriptBody(args = {}, body = "return new Date().getTime()")
    1.29      private static native double getTime();
    1.30  
    1.31      @net.java.html.js.JavaScriptBody(args = {  }, body = 
    1.32 -        "var a = document.createElement('a');"
    1.33 +        "if (!document.getElementById('bck2brwsr.fragment')) return;\b"
    1.34 +      + "var a = document.createElement('a');\n"
    1.35        + "a.innerHTML = 'Cancel: closing in 10s...';\n"
    1.36        + "a.href = '#';\n"
    1.37        + "var closing = window.setTimeout(function() { window.close(); }, 10000);\n"
    1.38 @@ -119,7 +124,7 @@
    1.39          + "li.appendChild(span);\n"
    1.40          + "li.appendChild(details);\n"
    1.41          + "p.appendChild(pre);\n"
    1.42 -        + "ul.appendChild(li);\n"
    1.43 +        + "if (ul) ul.appendChild(li);\n"
    1.44          + "arr[0] = pre;\n"
    1.45          + "arr[1] = status;\n"
    1.46      )