Safari扩展注入了脚本/网页交互



我正在构建Safari浏览器扩展

我想从注入的脚本调用网页中的一个函数

例如,如果我从注入的脚本在页面上创建了一个脚本:

var newElement = document.createElement("script"); 
newElement.textContent = "function test(){alert(test);}"; 
document.body.insertBefore(newElement, document.body.firstChild);

然后可以从注入的脚本中调用该函数吗?

或者,是否可以反过来从网页调用注入脚本中的函数?

提前谢谢。

编辑:

对于任何感兴趣的人,我目前已经通过添加/删除自动执行功能解决了这个问题:

if(script!=null)
  script.parentNode.removeChild(script); 
script = document.createElement("script"); 
script.textContent = "(function(){test();})();";      
document.body.insertBefore(script, document.body.firstChild);

不确定是否有更好的为什么要实现这一点?

这似乎应该用postMessage 来完成