我正在嘗試編寫一個簡單的Ubiquity命令,該命令將在Wolfram Alpha上運行查詢,並將結果顯示在Ubiquity預覽對象中。jQuery + Ubiquity:從URL返回文檔對象
我需要設置預覽對象的innerHTML
。我目前這樣做是爲了得到HTML,這僅僅是一個開始:
//...
jQuery.get('http://www.wolframalpha.com/input/?i=' + input.text,
null,
function(page) {
previewBlock.innerHTML = page;
}
);
我有2個問題/問題:
- 沃爾弗拉姆需要5-10秒生成頁面上的所有HTML ,所以
get()
命令返回不完整的HTML
它如何等待頁面完全加載? - 結果的鎢頁面上有
id="results"
,我想通過做這樣的事情,只是得到的結果:previewBlock.innerHTML = page.getElementById('results').innerHTML
怎麼可以這樣跟我使用的URL做了什麼?
另一個選擇可能是使用鎢URL作爲源來創建一個新的元素,並將其追加到previewBlock
- 我不知道該怎麼做,雖然。任何建議,將不勝感激。
UPDATE
這裏是我使用的是無處不在的腳本 - 它會在一個循環的HTML源文件,並將其輸出獲取圖像。注:CmdUtils.previewGet(pblock, opt)
調用jQuery.get(opt)
CmdUtils.CreateCommand({
name: "wolfram",
takes: {"input": noun_arb_text},
icon: "http://www.wolframalpha.com/favicon.ico",
homepage: "http://www.wolframalpha.com",
author: {name:"Jason Coon"},
description: "Searches Wolfram Alpha and loads results in to Preview pane.",
preview: function(pblock, input) {
CmdUtils.previewGet(pblock,
'http://www.wolframalpha.com/input/?i=' + input.text,
null,
function(data){
var resultStart = data.indexOf("results",0);
var beginPos = data.indexOf("<img src", resultStart);
var endPos = 0;
var html = ""
while(beginPos != -1){
endPos = data.indexOf(">", beginPos);
html = html + "<br><br>" + data.substring(beginPos, endPos);
beginPos = data.indexOf("<img src", endPos);
}
pblock.innerHTML = html;
}
);
}
})
首先,你如何越過「受限制的URI被拒絕」錯誤? – 2009-05-22 18:21:40