WOT有一个Javascript API,它允许你在它所在的任何页面上激活评分,所以我使用它作为基础。然而,它似乎永远不会像一个bookmarklet那样正常工作。这里有一次尝试,我试图使代码尽可能地接近API。我只修改了wotinject函数,使其可以在书签小程序中工作,并添加了一个超时,这样就不会在jQuery之前加载评级小部件。
var wotprotocol = (document.location.protocol == "https:") ? "https://" : "http://";
var wotbase = wotprotocol + "api.mywot.com/widgets";
var wotinject = function(src) {
document.body.appendChild(document.createElement("script")).src = wotbase + "/" + src + ".js";
};
var wotjquery = typeof(jQuery) != "undefined";
if (!wotjquery) {
wotinject("jquery");
}
void(window.setTimeout(wotinject, 200, "ratingwidget"));我可以在状态栏中看到正在加载的API,但它根本没有做任何事情。有没有办法让它正常工作?
发布于 2009-12-08 11:29:09
我不确定这是否回答了您的问题,但我在生产环境中使用了一个加载jQuery的书签小程序。这段代码对我来说工作得很好:
load = function() {
load.getScript("http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js");
// do stuff when jQuery finishes loading.
load.tryReady(0);
}
load.getScript = function(filename) {
var fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref);
}
load.tryReady = function(time_elapsed) {
/* Continually polls for jQuery library. */
if (typeof $ == "undefined") {
if (time_elapsed <= 5000) {
setTimeout("load.tryReady(" + (time_elapsed + 200) + ")", 200);
} else {
alert("Timed out while loading jQuery.");
}
} else {
/************ JQUERY IS NOW LOADED, PUT CODE HERE ****************/
}
}
load();https://stackoverflow.com/questions/1851675
复制相似问题