我正在尝试通过 Chrome 扩展内容脚本将函数注入网页:
function inject(code) {
var actualCode = '(' + code + ')();';
var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
}
var myObj = person; // myObj/person is passed in from elsewhere
var fn = function() {
alert(myObj.name);
};
inject(fn); // myObj undefined
我的问题是,由于 fn 是一个函数表达式,我不能传入 myObj.personName。所以我的问题是,如何构造一个包含变量的函数表达式?我是否改为进行某种字符串连接?
我还尝试将对象传递给函数,如下所示:
function inject(code, myObj) {
var actualCode = '(' + code + ')(' + myObj +');';
...
但这不起作用,并导致“Uncaught SyntaxError: Unexpected identifier”错误。