Chrome扩展程序:内容脚本 - >动态功能

时间:2011-08-22 14:20:49

标签: google-chrome-extension request dynamic-function

我想在内容脚本(Chrome扩展程序)上调用动态函数。但常见的方法不起作用:

chrome.extension.onRequest.addListener(function cs_listener(request, sender, sendResponse) {
    [request.action]();
}
请求。反应是等等。函数blah()是....现在它来了......一个函数!

抛出错误:

Error in event handler for 'undefined': TypeError: object is not a function

有人克服了这个?我真的不喜欢为我需要的每一个动作做出改变。

2 个答案:

答案 0 :(得分:1)

你必须使用

window[request.action]();

作为

[request.action]();

创建一个包含request.action数组,并尝试调用它,这会导致错误。 window[request.action]();request.action获取名为window的媒体资源,并将其调用。

您可能还想检查是否首先定义了属性:

if(typeof window[request.action] == "function")
  window[request.action]();

答案 1 :(得分:1)

另一种方法是从后台页面调用该函数,而不发送请求:

chrome.tabs.executeScript(null, {code: "dynamic_function_name()"});