我可以派生一个Web Worker并从父“”向其注入JavaScript函数吗;过程”;
Can I spawn a Web Worker and inject JavaScript functions into it from the parent "process"?
是否可以生成一个web工作程序,并以某种方式从父线程向其注入JavaScript函数?也就是说,不必让工作程序包含一个文件,而是希望父级以某种方式注入它。
一个选项是通过常规通道发送函数代码,并使用构造函数new Function()
(或eval()
)重新创建函数。
在这两种情况下,您都应该检查实际传输的内容,以防止安全风险。
主脚本
// your function given as arguments and code
var funktion = {
args: ['a', 'b' ],
source: 'return a + b;'
};
// send it to your worker
worker.postMessage( funktion );
工人
self.addEventListener( 'message', function( msg ){
// build array for constructor arguments
var args = [ null ].concat( fk.a, fk.c );
// create function
var yourFunc = new (Function.prototype.bind.apply(Function, args));
// use yourFunc
});
这使用了Function
构造函数的动态使用,如本答案中所述。
使用eval()
可能更简单,具体取决于函数代码的使用方式:
主脚本
// your function given as arguments and code
var funktion = "function add(a,b){ return a + b; }";
// send it to your worker
worker.postMessage( funktion );
工人
self.addEventListener( 'message', function( msg ){
// create function
var yourFunc = eval( "(function(){ return " + funktion + "; })()" );
// use yourFunc
});
相关文章:
- 注入Javascript以选择具有指定值的所有单选按钮
- 在表单上注入javascript以发送post请求
- 动态注入javascript文件-为什么大多数示例都附加到头上
- 从 Meteor 模板注入 JavaScript
- 注入javascript代码的正确方式
- Html注入javascript代码
- 如何在不使用脚本标记的情况下注入javascript
- 使用C#在BHO中注入javascript-如何正确地转义字符串
- 我们如何将PHP变量注入Javascript
- document.write 注入 javascript 的计时
- 通过浏览器扩展注入 JavaScript
- 在 WebView 完成从以前的 JavaScript 注入加载后,在 Android 中注入 JavaScript
- 在服务器上注入 JavaScript 代码
- 将 PHP 数据注入 JavaScript 代码
- 样式注入Javascript事件
- 从c#中的代码后面向链接按钮注入JavaScript
- 在匿名函数中注入JavaScript变量作为值
- 从Chrome扩展在页面中注入Javascript:并发问题
- asp.net我可以将配置设置注入javascript吗
- WebBrowser注入Javascript将焦点设置为第一个输入框