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

3

我正在开发一个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);

不确定是否有更好的方法来实现这个?

1个回答

0

看起来应该使用 postMessage 来完成这个任务


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接