0

複数のヘッダーをロードするブックマークレットを作成しました。一部の JS 一部の CSS。ヘッダー要素を作成した後onreadystatechange、含まれているヘッダーがいつ読み込まれたかを確認します。

ただし、何らかの理由で、このチェックは css ヘッダーのサファリでは機能しません。

そのコードは次のとおりです。

var CssScript = document.createElement("link");
CssScript.href = "http://domain.com/css/bookmarklet.css";
CssScript.setAttribute('type', 'text/css');
CssScript.setAttribute('rel', 'stylesheet');
CssScript.setAttribute('media', 'all');
CssScript.setAttribute('id', 'yk_bookmarklet_css');
CssScript.onload = CssScript.onreadystatechange = function(){
    console.log("asdfasdfasdfasdf");
    if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
        loaded_headers++;
        console.log('Next2');
        if(loaded_headers >= total_headers){
            done = true;
            $.getJSON("http://www.shopsavr.com/bookmarklet_getjson_functions.php?jsoncallback=?", {'url' : encodeURIComponent(document.URL)},
                function(data){
                    collections = data.collecitons;
                    product_found = data.product;
                    uID = data.uID;
                    url = data.url;
                    window.mbm = false;
                    initMyBookmarklet();
                });
        }
    }
};

これは、IE、FF、chrome、Opera で完全に機能します。Safari でのみ失敗します。

4

0 に答える 0