Google chrome extension Chrome扩展:内容脚本->;动态函数
我想在内容脚本(Chrome扩展)上调用一个动态函数。但通常的方法不起作用:Google chrome extension Chrome扩展:内容脚本->;动态函数,google-chrome-extension,request,dynamic-function,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: ob
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
有人克服了吗?我真的不喜欢对我需要的每一个动作都进行切换。你必须使用
window[request.action]();
作为
创建一个包含请求.action
的数组,并尝试调用该数组,从而导致错误<代码>窗口[请求.操作]()从窗口
获取名为request.action
的属性,并调用该属性
您可能还想检查是否首先定义了属性:
if(typeof window[request.action] == "function")
window[request.action]();
另一种方法是只从后台页面调用该函数,而不发送请求:
chrome.tabs.executeScript(null, {code: "dynamic_function_name()"});
是的,窗口[请求.操作]();作品奇怪,我以前试过,但没用。向打字错误问好。无论如何,谢谢!这也可以,但有一个限制。您不能将内容脚本的响应发送到后台脚本。@Johnny True,您仍然可以通过初始化请求来发送结果。
chrome.tabs.executeScript(null, {code: "dynamic_function_name()"});