WOT Bookmarklet - PullRequest
       6

WOT Bookmarklet

0 голосов
/ 05 декабря 2009

Я пытаюсь написать букмарклет, который позволит мне просмотреть Web of Trust (WOT) рейтинги для всех ссылок на странице перед их посещением. Хотя WOT предоставляет свой собственный букмарклет, он не очень полезен, поскольку вам необходимо сначала посетить страницу, прежде чем просматривать рейтинг. Это будет использоваться в SeaMonkey, поэтому я не могу просто установить расширение WOT.

WOT имеет Javascript API , который позволяет активировать рейтинги на любой странице, в которую он включен, поэтому я использую его в качестве основы. Тем не менее, он никогда не работает как букмарклет Вот одна попытка, где я пытался сохранить код как можно ближе к 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 в строке состояния, но это ничего не делает. Есть ли способ заставить это работать?

1 Ответ

0 голосов
/ 08 декабря 2009

Я не уверен, отвечает ли это на ваш вопрос, но я использую букмарклет на производстве, который загружает 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();
...