1

我有一个方法,我想停止执行(不返回),等待 UI 触发的事件,然后继续该方法。

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(details) {

        var newHeaders;
        //I need to stop here, wait on some user event, update the `newHeaders` variable with
        //the content set by the user on the page

        return {requestHeaders:newHeaders};
    },
    {urls: ["<all_urls>"]},
    ["blocking", "requestHeaders"]
);

我在做什么:开发一个拦截请求的chrome插件,通过用户从html的输入修改它们,然后发送请求。根据文档,我假设我必须直接在方法中修改它并返回它。

4

1 回答 1

0

我希望这会为您指明正确的方向:

位于http://developer.chrome.com/trunk/extensions/webRequest.html的文档说:

如果可选的 opt_extraInfoSpec 数组包含字符串 'blocking'(仅允许用于特定事件),则同步处理回调函数。这意味着请求被阻塞,直到回调函数返回。在这种情况下,回调可以返回一个 BlockingResponse,它决定了请求的进一步生命周期。根据上下文,此响应允许取消或重定向请求 (onBeforeRequest)、取消请求或修改标头 (onBeforeSendHeaders、onHeadersReceived),或提供身份验证凭据 (onAuthRequired)。

我的猜测是您可以指定“阻止”,然后从您的用户那里收集信息。

于 2012-09-20T19:52:55.783 回答