问题标签 [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 回答
248 浏览

html - 是否可以检测小程序的负载?

我正在开发一个 Safari 扩展,我想检测<applet>s 何时在页面上加载(onbeforeload事件)。但是,这些似乎没有这样的事件。

我该怎么做?将所有<applet>标签转换为<object>标签,然后拦截它们的onbeforeload事件?我认为它会破坏document.applets集合,所以这不是一个非常酷的解决方案。有没有更好的办法?

0 投票
4 回答
9097 浏览

safari - Safari 扩展问题

我正在构建我的第一个 Safari 扩展程序——一个非常简单的扩展程序——但我遇到了一些问题。该扩展归结为一个单一的注入脚本,该脚本试图绕过本机提要处理程序并重定向到 http:// URI。到目前为止,我的问题有两个:

  1. “白名单”没有按我预期的方式工作。由于所有提要都显示在“feed://”协议下,我试图在白名单中将其捕获为“feed://*/*”(黑名单中没有任何内容),但我最终收到了一个请求我无法理解的循环。如果我设置“ http://*/* ”和“ https://*/* ”的黑名单值,一切都会按预期工作。
  2. 我不知道如何从注入的脚本中访问我的设置。该脚本创建了一个beforeload事件处理程序,但无法使用safari.extension.settings文档中指示的路径访问我的设置。

我在 Apple 的文档中没有发现任何内容表明我的脚本中不应提供设置。由于扩展是一个新功能,即使是谷歌也返回有限的相关结果,其中大部分来自官方文档。

我错过了什么?

更新 所以我希望文档不完整,因为它非常糟糕,但我已经了解了一些关于设置的知识。事实证明,从注入脚本中,该SafariExtensionSettings对象不可用。注入脚本只能访问该SafariContentExtension对象(这根本没有用),但它的别名方式完全相同(safari.extension.settings)——IMO 是个坏主意。如注入脚本文档中所述:

重要提示:当您在注入脚本中使用 safari.extension 时,您并没有解决 SafariExtension 类。您正在解决 SafariContentExtension 类。

您必须使用消息系统与可以访问设置的全局 HTML 文件对话。这有点循环,但是我有一条消息被发送到一个global.html文件中,该文件检索设置,一旦我弄清楚如何去做,就会将一条消息发送回我的注入脚本。

由于我在加载文档之前完成了所有工作,因此我发现的所有发消息的方法都依赖于我没有的页面对象。

0 投票
1 回答
1085 浏览

safari - Safari 扩展 - 如何响应设置更改?

我目前正在开发 Safari 5 的扩展,并且我想在设置更改时运行监听器功能。苹果为此提供了一个例子,但它对我不起作用。我目前在我的全局 html 文件中有这个监听器函数:

我希望有人能帮助我。有人知道我做错了什么吗?

0 投票
2 回答
644 浏览

safari - Safari 扩展 - 响应消息的注入脚本过多

我正在尝试编写一个类似于 Bubble Translate for Chrome 的 Safari 扩展程序。

当您单击工具栏上的按钮时,它会使用 Google 语言 API 自动将当前选择的文本翻译成您选择的语言。

我遇到的问题如下:

该脚本不仅会注入到主页中,还会注入到嵌入页面的广告和类似内容中。因此,所选文本会被多次翻译,因为一页中的所有嵌入脚本都会响应该消息。

如何确保脚本仅注入正确的页面或只有正确的页面响应?

0 投票
7 回答
10345 浏览

safari-extension - Safari 没有检测到我的扩展证书

我已注册 Safari 开发计划并拥有有效的 Apple ID。我已按照 Apple 提供的所有步骤进行操作。问题是 Windows XP (Service Pack 2) 不能识别命令“certreq”,而说明说它可以在任何 Windows 机器上工作。但是,命令“certreq”在我同事的机器上的 Windows Vista 上运行,我下载了证书(.cer 文件)并安装了它,Safari 检测到它。但是,我没有 Windows Vista。我现在在我的机器上安装了 Windows 7,命令“certreq”有效并且我有 Safari 扩展证书(.cer 文件)但是当我打开 Safari 的扩展生成器时,我的证书没有出现在那里。

我在 Start --> Run 中输入 mmc 并检查是否在那里安装了证书。它在“其他人”中,但不在“个人”中。即使在 Internet Explorer 7+ 上,当我转到工具 --> Internet 选项 --> 内容(选项卡) --> 证书时,证书也不存在于个人选项卡中,(而它已自动安装在个人文件夹中视窗)。我尝试将证书(.cer 文件)导入到 Peronal 文件夹中,导入成功,但它仍然没有出现在个人文件夹中,当我转到 Extension Builder 时,Safari 也没有识别/检测到它。

有什么帮助吗?!我需要为我的办公室项目延期,截止日期快到了。我真的需要完成它。

感谢一百万的期待。

0 投票
2 回答
122 浏览

javascript - 我可以定义允许哪些字符“打断”一个单词吗?

我在我的 Safari 扩展程序中显示了非常长的 URL。显然,它们不能放在一条线上。目前,分词规则使得大多数 URL 都在两行上:第一行相当短,以?符号结尾,另一行长得离谱,包含所有其余GET参数。

我想让它在&符号上也中断,如果可能的话,不要搞砸复制粘贴。我试图&&\u00ad( + 软连字符) 替换每个,但是在 URL 中确实没有任何&连字符之后看到连字符有点奇怪。&

我以为 CSS3 可以解决这类问题,但我找不到。

欢迎任何建议,只要它适用于 Safari。

0 投票
1 回答
43 浏览

rss - 在 safari5 中拦截 feed://

我正在为 Safari5 编写扩展程序,并且试图拦截用户单击 RSS 图标并加载 feed://.. URL 以提供他/她的订阅选项的事实。我试图为 feed:// /白名单模式注册一个开始内容脚本,但这不起作用。有谁知道如何使这项工作?

0 投票
2 回答
1721 浏览

javascript - 在 Safari 扩展中识别上下文菜单事件的链接

我正在尝试构建一个 safari 扩展(主要用于学习目的),当用户右键单击链接时,它会创建一个美味的书签。我看过 WWDC 创建 Safari 扩展视频,一切正常。

除了我不知道如何找出用户是否单击了链接(或只是一些文本),如果是,则获取它的 url 和标题。到目前为止我得到的是:

但这显然只给了我一串选择。现在,根据 Safari 参考库getSelection()返回一个DOMSelection对象。但即使在那里,我也无法找到一种方法可以让我处理所选链接。

您可能会注意到,我对整个 javascript 和 DOM 的东西还很陌生,所以如果这是一个明显的问题,请原谅:)

乔,斯文

0 投票
2 回答
108 浏览

javascript - Safari 5 扩展

我正在尝试自学 Safari 5 扩展,而且我一般是 Web 开发的新手。查看示例代码,我看到:

我只是想知道,我在看什么语言?我看到几乎看起来像 C 的函数和代码。Apple 的文档说了解 HTML、javascript、CSS 和 HTMl5 会有所帮助,但我不确定他们的示例是用什么编写的。

0 投票
2 回答
1124 浏览

php - HTML PHP JavaScript 随便检查 Gmail 未读计数

所有这些浏览器插件、通知器等如何检查您的 gmail 未读计数?

我正在尝试编写一个 Safari 扩展程序(恰好在 javascript 中,但我认为这并不重要),但我不知道如何解析 Gmail atom 提要(https://mail.google.com/ mail/feed/atom ) 以获取未读计数。

谢谢,