首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WOT Bookmarklet

WOT Bookmarklet
EN

Stack Overflow用户
提问于 2009-12-05 17:16:21
回答 1查看 269关注 0票数 0

WOT有一个Javascript API,它允许你在它所在的任何页面上激活评分,所以我使用它作为基础。然而,它似乎永远不会像一个bookmarklet那样正常工作。这里有一次尝试,我试图使代码尽可能地接近API。我只修改了wotinject函数,使其可以在书签小程序中工作,并添加了一个超时,这样就不会在jQuery之前加载评级小部件。

代码语言:javascript
复制
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,但它根本没有做任何事情。有没有办法让它正常工作?

EN

回答 1

Stack Overflow用户

发布于 2009-12-08 11:29:09

我不确定这是否回答了您的问题,但我在生产环境中使用了一个加载jQuery的书签小程序。这段代码对我来说工作得很好:

代码语言:javascript
复制
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();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1851675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档