2013-01-19 77 views
0

我目前正在與工作人員一起玩耍,他們非常整潔,但有一件事當然缺失:可能會傳遞一個匿名函數。因爲我手上有空閒時間,我想看看能否找出解決這個問題的辦法。我認爲,最明顯的方法實現,這將是使用Blobs,所以我成立了這個小腳本:是否可以將外部JS腳本加載到blob中?

var blob = new Blob(['var getLastSeen = function(player) { \ 
        $.getJSON("fetch.php?player=" + player, function(data){ \ 
         if(data.online) \ 
          postMessage("online"); \ 
         else if(data.online == false) \ 
          postMessage(data.lastSeen); \ 
        }); \ 
        };\ 
        getLastSeen("[email protected]");'],{ "type" : "text\/javascript" }); 

var worker = new Worker(window.URL.createObjectURL(blob)); 

worker.onmessage = function (Event) { 
    document.getElementById("logDisplay").innerText = Event.data; 
}; 

(getLastSeen做一個數據庫查詢時看到是最後一次玩家登錄)

正如你可能已經注意到,我需要jQuery來運行該腳本,所以我想我只是在斑點的開頭添加的代碼,這個小塊:

var head= document.getElementsByTagName("head")[0]; \ 
var script = document.createElement("script"); \ 
script.type= "text/javascript"; \ 
script.src= "//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"; \ 
head.appendChild(script); \ 

我沒有注意到,雖然我看了之後立刻應該有Blob的類型是,沒有辦法與DOM進行交互,這意味着加載外部腳本顯然是不可能的(至少使用我正在使用的方法)。因此,我的問題是,「如何將外部腳本加載到blob中,但我無法與DOM交互」?

編輯:我很清楚,我不需要jQuery的簡單的Ajax請求,我只是想知道它是否一般可能。

回答

相關問題