问题标签 [safari-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
42131 浏览

http-headers - 您可以在 Safari 扩展程序中修改 http 请求标头吗?

我可以在 FF 和 IE 中做到这一点,而且我知道它在 Chrome 中还不存在。有人知道您是否可以在 Safari 插件中执行此操作?我在文档中找不到任何以一种或另一种方式表达的东西。

0 投票
1 回答
128 浏览

javascript - 使用 javascript 更改 XML 文件

我正在制作一个 safari 扩展程序,我需要从 javascript 更改 info.plist 文件。

我的 javascript 文件位于 /scripts

因此,当更改带有复选框的设置时,javascript 将该设置的真/假值放入 info.plist

如何使用 javascript 更改 plist 文件(xml 格式)?

0 投票
1 回答
910 浏览

macos - 防止在 Safari 上加载第 3 方元素的方法?

基本上,我正在寻找Safari的RequestPolicy 。GlimmerBlocker、Privoxy 和 BFilter 等,它们运行良好,但它们都不支持“阻止 3rd 方元素”功能。

我使用 GlimmerBlocker,为了模仿(勉强)这个功能,我主要把这段代码用于过滤脚本泛滥的网站。

但是,我厌倦了为每个网站重复创建过滤器。反之亦然,白名单将是相同的。如果有人有解决这个问题的想法,那就太好了。谢谢。

0 投票
1 回答
387 浏览

safari - 如何在 safari 扩展程序中基于 URL(来自地址栏)阻止

我正在尝试编写一个扩展程序,如果每小时访问次数超过 N 次,它将阻止对(可配置的)URL 列表的访问。据我了解,我需要一个启动脚本将“我应该加载这个”消息传递给全局 HTML 页面(谁可以访问设置对象以获取 URL 列表),谁会竖起大拇指/竖起大拇指消息返回到启动脚本以拒绝/允许加载。

这对我来说很好,但是当我使用通常的 beforeLoad/canLoad 处理程序时,我会收到所有需要加载的子项目(图像/等等)的消息,这搞砸了我的 #accesses/hour 限制我正在努力。

有没有办法在两个沙箱之间来回同步传递消息,这样我就可以告诉全局 HTML 页面,“这是窗口栏中的 URL 和这个请求进入的时间戳”,所以我可以限制重复请求?

谢谢!

0 投票
1 回答
480 浏览

google-chrome - Safari 中的 chrome.tabs.captureVisibleTab 等效项?

我正在尝试将 Chrome 扩展移植到 Safari,不确定是否真的可行。只是想知道是否有人在 Safari 中编写了屏幕捕获/裁剪样式插件,特别是标题中提到的问题。

谢谢。

0 投票
0 回答
385 浏览

javascript - 在 Safari 扩展中创建模式对话框

我正在创建一个扩展,它捕获一些 DOM 元素并将其以模式对话框的形式抛出。到目前为止,我在 Chrome 和 Firefox 上取得了成功,但在 safari 上却没有。有什么工作?

0 投票
1 回答
310 浏览

javascript - 在新创建的窗口上设置 onload(),可能吗?

我正在创建一个 Safari 扩展。有一次,我想打开一个新选项卡/窗口并在该新选项卡的某些文本字段中输入文本。

这是我尝试过的。

问题是该函数永远不会被调用。

在调试期间,我看到它newWindow是有效的,但它newWindow.onload总是undefined,之前和之后newWindow.onload = fillContent;

有可能做我想做的事吗?有没有更好的办法?

0 投票
1 回答
241 浏览

javascript - Safari 扩展 - 无法从 Safari 对象获取 globalPage

globalPagesafari.extension内部注入脚本中获取问题。

每次我尝试获取它时,Safari 都会在控制台中返回错误:

TypeError: Result of expression 'safari.extension.globalPage' [undefined] is not an object.

在全局页面脚本中,我获取它没有问题。

你们中有人知道如何解决这个问题吗?

谢谢

0 投票
2 回答
552 浏览

firefox-addon - 哪个浏览器最容易为其开发浏览器扩展?

我有兴趣学习为大多数主要浏览器(Chrome、Firefox、Safari、Opera、IE)开发浏览器扩展,但我不确定从哪里开始。为了保持兴趣,我想开始为具有最温和学习曲线的浏览器进行开发。

那么,您为不同浏览器开发扩展程序的经验是什么?自然,一个人必须为不止一种浏览器开发才能给出合理的答案。

我是一位经验丰富的 Web 开发人员,对 C++/Java/Ruby/Erlang 等也没有任何问题,所以问题不是我能学什么,而是我最快能收获什么。

0 投票
1 回答
1843 浏览

javascript - 将动态脚本注入到 Safari 扩展中的每个选项卡 onLoad

在 Chrome 中,有一种简单的方法可以通过该方法将动态加载的脚本注入到每个选项卡 onLoad 中,chrome.tabs.onUpdated.addListener就像这样:

现在,我尝试将相同的东西移植到 Safari 扩展,但我只发现我可以在扩展生成器中提供注入的脚本,并且 API 描述太差了

有没有办法在 Safari 中做同样的事情?

ps:脚本在后台加载一次(在 Safari 中称为“全局”)页面