さまざまな Web サイトの Freebase 提案検索ウィジェットを含めて (スクリプトっぽい) ユーザースクリプトを書きたいと思っています。これを機能させるためにいくつかのアプローチを試みましたが、今のところうまくいきません。
私のユーザースクリプトは次のようになります(ワイルドカードが含まれていることに注意してください):
// ==UserScript==
// @id meta@parsed.nl
// @name Meta
// @version 1.0
// @namespace
// @author
// @description
// @include *
// @run-at document-end
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.js
// @require http://freebaselibs.com/static/suggest/1.3/suggest.min.js
// @noframes
// ==/UserScript==
$("head").append('<link type="text/css" rel="stylesheet" href="http://freebaselibs.com/static/suggest/1.3/suggest.min.css" />');
$("body").prepend('<input id="freebase-suggest" type="text"/>');
$("#freebase-suggest")
.suggest()
.bind("fb-select", function(e, data) {
alert("");
});
すべて正常に読み込まれますが、検索ボックスを使用しようとすると機能せず、エラー コンソールに次のエラーが表示されます。
エラー: jQuery16101843227533633628_1325186688691 は定義されていませんソース ファイル: http://www.freebase.com/private/suggest?callback=jQuery16101843227533633628_1325186688691&prefix=ron+paul&type_strict=any&all_types=false 行: 1
どうやら、スクリプトはクロス ドメイン リクエストに JSONP を使用しているようjQuery16101843227533633628_1325186688691
で、直感的には、ウィジェットが含まれるドキュメントとは異なるコンテキストでコールバックが定義されていることがわかります (Scriptish コンテキストと unsafeWindow の関係)。
私は何をすべきか?