WOT Bookmarklet

时间:2009-12-05 09:16:21

标签: javascript jquery bookmarklet

我正在尝试编写一个书签,允许我在访问之前查看页面上所有链接的Web Of Trust (WOT)评级。虽然WOT提供了自己的书签,但它并不是很有用,因为您需要在查看评级之前先访问该页面。这将用于SeaMonkey,因此我不能只安装WOT扩展名。

WOT有一个Javascript API,允许您在其中包含的任何页面上激活评级,因此我将其用作基础。但是,它似乎永远不能作为书签正常工作。这是我尝试将代码尽可能接近API的一次尝试。我只修改了wotinject函数,以便它可以在bookmarklet中工作并添加一个超时,这样在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,但它根本不做任何事情。有没有办法让这个工作?

1 个答案:

答案 0 :(得分:-1)

我不确定这是否能解答您的问题,但我在生产中使用了一个加载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();