【发布时间】:2011-12-30 05:24:33
【问题描述】:
我想编写一个(Scriptish)用户脚本,其中包括the Freebase suggestion search widget 各种网站。我已经尝试了几种方法来让它工作,但到目前为止没有运气。
我的用户脚本看起来像(注意包含通配符):
// ==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)。
我该怎么办?
【问题讨论】:
标签: javascript firefox greasemonkey freebase scriptish