如何在使用Web视图时启用Safari Extensions

时间:2012-03-01 16:39:07

标签: macos cocoa webview safari-extension

我在我的应用程序中使用Web视图,而不是打开Safari浏览器实例,所以我注意到Safari扩展不起作用。在Cocoa应用程序中使用自定义Web视图时是否可以启用此功能?

我需要使用Safari扩展的原因是将javascript注入到某个时刻加载的任何网页,所以如果有另一种方法不使用扩展,请欢迎任何建议或样本。

1 个答案:

答案 0 :(得分:1)

在网络视图中无法使用Safari扩展程序。

如果您的脚本不是太大,如何将其格式化为“javascript:”书签并将Web视图的位置设置为它?

[ 编辑:下面添加的内容是为了回应提问者的“更多关于该技术”的请求。 ]

假设您要将页面的背景颜色更改为黄色,将所有文本更改为红色。这样做的javascript就像:

document.body.style.backgroundColor = "yellow";
document.body.style.color = "red !important";

要将脚本转换为书签,您只需:

  1. 用匿名函数包装它,
  2. 删除所有换行符,
  3. (可选)删除任何不必要的空格,
  4. url-encode it,
  5. 并用“javascript:”作为前缀。
  6. 因此,示例将成为:

    javascript:(function(){document.body.style.backgroundColor%3D%22yellow%22%3B%0Adocument.body.style.color%3D%22red%20!important%22%3B%0A}());
    

    然后,您可以将webview的window.location设置为该字符串以“运行”书签。

    Here is a page带有自动脚本到bookmarklet转换器似乎可以正常工作。