1

我目前正在开发一个向网站添加样式表和一些小脚本的 Safari 扩展。其中一个脚本必须插入到 html 中,所以我运行了另一个脚本......

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = 'http://mysite.com/myscript.js';
document.querySelector('head').appendChild(myScriptElement);

...这将其添加到头部:

<script type="text/javascript" src="http://mysite.com/myscript.js"></script>

我遇到的问题是脚本是从我的站点而不是扩展文件夹加载的。那么我必须插入什么作为源才能访问扩展文件夹?我无法使用标准的开始和结束脚本扩展功能插入脚本。

我在 javascripting 方面真的很糟糕,所以如果你们中的某个人可以帮助我,我将不胜感激!:)

4

1 回答 1

2

您可以使用safari.extension.baseURI获取扩展文件夹的路径。所以在你注入的脚本中使用这样的东西:

var myScriptElement = document.createElement('script');
myScriptElement.type = 'text/javascript';
myScriptElement.src = safari.extension.baseURI+'myscript.js';
document.querySelector('head').appendChild(myScriptElement);

值得注意的是,注入的脚本也被注入到页面上的每个 iframe 中,因此根据您正在执行的操作,您可能希望确保上述内容仅是 run if (window == window.top)

于 2013-03-17T16:37:20.673 回答