Wolfram Alphaでクエリを実行する単純なUbiquityコマンドを書き、その結果をユビキティプレビューオブジェクトに表示しようとしています。jQuery + Ubiquity:URLからドキュメントオブジェクトを返します
私は、プレビューオブジェクトのinnerHTML
を設定する必要があります。ヴォルフラムは、ページ上のすべてのHTMLを生成するために、5〜10秒かかります
-
:私は2つの問題/質問があり
- 結果はヴォルフラムページに
id="results"
を持って、私はちょうどこのような何かを実行して結果を取得したいのですが:previewBlock.innerHTML = page.getElementById('results').innerHTML
どのようにこれは私が使用しているURLに行うことができますか?
//...
jQuery.get('http://www.wolframalpha.com/input/?i=' + input.text,
null,
function(page) {
previewBlock.innerHTML = page;
}
);
:私は現在、唯一の開始であるHTMLを取得するためにこれをやっています、get()
コマンドは不完全なHTMLを返します
ページが完全に読み込まれるまでどのくらい待つことができますか?
別のオプションは、ソースとしてヴォルフラムURLを使用して新しい要素を作成し、previewBlock
にそれを追加するかもしれない - 私もそれを行うするかどうかはわかりません。任意の提案をいただければ幸いです。
UPDATEここ
は、私が使用しているUbiquityのスクリプトです - それは、ループ内のソース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拒否」エラーをどのように過ぎていますか? –
ユビキタスはそれを世話しているようで、データを取得できます。 –
ユビキタスコールを含むコードを投稿してください。 –