【发布时间】:2012-01-13 03:13:48
【问题描述】:
我想在 jsonp 的回调中使用事件的 preventDefault 方法。我必须使用纯 JavaScript。我已经有一个模拟 jsonp 请求的函数。这是我在做什么:
var evt_temp = null;
function onContextMenu(event)
{
evt_temp = event;
jsonp
({
url: "someurl",
params: "someparams",
callback: "cb"
});
}
function cb(response)
{
if (something == true)
{
evt_temp.preventDefault();
evt_temp = null;
}
}
我的解决方案有效,但我觉得这不是一个好主意,将事件存储在 var 上。有人知道更好的方法吗?
【问题讨论】:
-
你的 jsonp API 太糟糕了,修复它,让它使用函数引用而不是函数名
-
您可能不知道 JSONP 是什么来发表这样的评论...发出 jsonp 请求的唯一方法是:url?callback=method。您必须将回调函数作为字符串发送。
-
我当然知道,但这是可以在 jsonp 函数中完成的魔法,为什么 jsonp 不能接受回调函数然后创建一个全局 uuid 将回调存储在那里然后执行
url?callback=globaluuid -
好吧,我的问题是:这样做将如何解决我的问题?我的 jsonp api 很糟糕,但它可以工作。让它接受匿名函数不会解决我的问题。我无法将对象发送到 jsonp 请求,然后在回调函数上对其进行响应。如果可能的话,我从未见过。
-
查看答案。在引擎盖下做到这一点并不难
标签: javascript jsonp