我制作了一个加载多个标题的书签。一些 JS 一些 CSS。创建标题元素后,我会onreadystatechange
检查包含的标题何时加载。
但是由于某种原因,此检查不适用于 css 标头的 safari。
这是它的代码:
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 上失败。