2009-12-05 95 views
0

我正在嘗試編寫一個小書籤,允許我在訪問頁面之前查看頁面上所有鏈接的Web Of Trust (WOT)評分。雖然WOT提供了他們自己的書籤,但它並不是非常有用,因爲您在查看評分前需要先訪問該頁面。這將在SeaMonkey上使用,所以我也不能只安裝WOT擴展。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,但它什麼也沒有做。有什麼辦法可以使這個工作?

+0

您是否考慮過創建一個黃油猴插件?您可以始終加載它,並可以使用跨站點xhr,這可能對您有所幫助 – mkoryak 2010-03-18 20:04:01

回答

-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();