0

このコードは Firefox と Chrome では機能しますが、IE9 では機能しません。IE9 の同じドメインでも動作しますが、他のドメインでは失敗します。コンソールに SCRIPT1002 : Syntax Error が表示されます。このコードを jsp に入れ、コントローラーから {domain}/path を使用してスクリプト タグにロードします。

   (
        function(){
           var v = "1.9.1";
           if (window.jQuery === undefined || window.jQuery.fn.jquery < v ) {
           var done = false;
         var script = document.createElement("script");
         script.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + v + "/jquery.min.js";
         script.onload = script.onreadystatechange = function(){
        if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
         done = true;
            initBookmarklet();
        }
        };      
        document.getElementsByTagName("head")[0].appendChild(script);   
            } else {
                initBookmarklet();
            } 


            function initBookmarklet(){
                //do stuff here
            }
        }());
4

1 に答える 1

0

このように書いてみてください

var v = "1.9.1";
if (window.jQuery === undefined || window.jQuery.fn.jquery < v) {
    var done = false;
    var script = document.createElement("script");
    script.src = "http://ajax.googleapis.com/ajax/libs/jquery/" + v + "/jquery.min.js";
    script.onload = script.onreadystatechange = function () {
        if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
            done = true;
            initBookmarklet();
        }
    };
    document.getElementsByTagName("head")[0].appendChild(script);
} else {
    initBookmarklet();
}


function initBookmarklet() {
    //do stuff here
}
于 2013-08-01T13:08:48.580 に答える