问题标签 [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 投票
1 回答
125 浏览

javascript - 如何使用 Safari 扩展将链接附加到文本块

我正在尝试创建一个 safari 扩展程序,它将在任何看起来像BibText条目的文本之后放置一个“添加到 BibDesk”链接。BibText 条目如下所示

我知道如何构建必要的正则表达式,但我的问题是使用 javascript 搜索页面上所有文本以查找特定文本位的最佳方法是什么?

0 投票
1 回答
977 浏览

javascript - Safari 5 扩展加载 URL 而无需打开窗口

我在 javascript 方面相当糟糕,但这就是我想要的。我的服务器上有一个 PHP 脚本,当用户按下我的 Safari 扩展按钮时,我希望将请求(url)发送到我的服务器(www.myurl.com/directory/script.php?etc),但我没有t 真的想要一个新的窗口/标签打开来加载它。有没有办法在隐藏窗口中加载它并在完成后关闭它或类似的东西,无论是使用 Safari API 还是直接的 javascript?

多谢你们!

0 投票
1 回答
453 浏览

javascript - 我可以在执行之前判断框架访问是否是跨域的吗?

我正在尝试为窗口集合中的每个框架查找 DOMiframe或元素。我认为最快的方法是访问框架的属性。该属性只对同域访问有效,跨域情况下返回 undefined 并在日志中打印错误信息。frameframesframeElement

我可以遍历从返回document.getElementsByTagName的元素以在跨域情况下找到正确的元素,但我想避免将“不安全的 JavaScript 尝试”消息打印到日志中。

有没有办法在尝试之前判断属性访问尝试是否会违反跨域安全策略?

谢谢。

0 投票
2 回答
1000 浏览

html - 在 safari 扩展中,表单 onsubmit 不起作用

好吧,现在我对正在发生的事情感到非常困惑。我正在创建一个名为 unibar 的 safari 扩展(它是一个单独的工具栏扩展,而不是工具栏项),它是 Chrome 地址栏的克隆。到目前为止,我想要的是至少创建一个常规地址栏,并从那里构建。这是我的bar.html文件,它连接到工具栏。

当我输入地址后按 Enter 键时,它会在浏览器窗口中显示 BAR.HTML!!!!怎么了?!?

0 投票
1 回答
1133 浏览

macos - 如何在 Safari 中检测是否安装了应用程序

我正在尝试在 safari 中编写一个简单的插件,只需要检查我开发的应用程序是否是通过 javascript 安装的。应用程序使用自定义 uri 启动。

我的问题与此处提出的问题非常相似,但是我不是针对 iphone\ipad 开发的,我真正想要的是我的检查结果为真\假,以便我可以向用户提供“下载应用程序或启动”应用程序的链接。

我已经有一个 Windows 版本,它使用 npruntime for firefox\chrome 和 ATL for IE在这里描述

0 投票
2 回答
2802 浏览

security - Safari 扩展程序如何知道隐私浏览模式是否开启?

我正在编写一个 Safari 扩展程序,并希望它在用户打开隐私浏览模式时表现不同(我想尊重这种隐私模式)。

我在 Apple 的文档中没有提到这一点。

我知道这个线程中的讨论:

检测浏览器是否正在使用隐私浏览模式

这建议使用(与浏览器无关的)js-CSS 技巧来检测私有浏览模式,但希望 Safari 中内置了一些可以用于我的扩展的钩子。

有任何想法吗?

0 投票
2 回答
272 浏览

javascript - 可以通过脚本在 Safari 中欺骗 iPad UA 吗?

如果这个问题被认为是愚蠢的,我深表歉意,但是是否可以通过某种脚本在 Safari 中欺骗 iPad 的 UA 字符串?

我知道这可以通过“开发”>“用户代理”菜单项来完成,但我有兴趣制作一个 Safari 扩展程序,该扩展程序可以强制仅向 iPad 提供 HTML5 视频的页面工作,而无需每次手动更改 UA。

谢谢

0 投票
2 回答
2565 浏览

javascript - 欺骗用户代理的 Safari 扩展?

是否可以使用 Safari 扩展来欺骗用户代理?我知道 Safari 本身能够使用“开发”菜单项进行欺骗,但它对我来说太有限了。

据我所知,Safari 扩展使用“开始”和“结束”脚本,但两者都是在文档加载执行的,所以我不能使用这些脚本通过 JavaScript 更改用户代理。

我不太确定这一点,今天才开始研究扩展,所以也许有人有另一个想法?

0 投票
1 回答
219 浏览

javascript - 尝试检测字符以确定页面是否应该重新加载。(Safari 扩展)

大家都知道,我对 JavaScript 比较陌生,(而且我一直在尝试用纯 JS 来做事,而不是使用 jQuery 等)。在我签约的地方,我们有一个 Exchange 服务器,我使用 webmail 客户端。

为了防止它在没有任何活动时让我超时,我开始组合一个 Safari 扩展,因为我可以使用一个将 JS 注入页面。而且我认为这将是一个很好的练习,因为我正在从头开始学习 JS。

嗯,它的那部分工作,除了当你回复或发送新电子邮件时,所以我尝试添加第二段代码来防止这种情况,但它仍然会刷新。我不知道为什么。我将不胜感激任何帮助!我还必须添加规则来判断我是回复还是回复所有内容,但我认为如果我能做到这一点,我就能让那些人去做。

所以这是我的代码:

0 投票
1 回答
301 浏览

javascript - Safari 扩展:将变量从活动选项卡传递到工具栏

我对创建 Safari 扩展相当陌生,并且正在寻找一些关于将变量从活动选项卡传递到扩展工具栏的建议。

我正在使用一个名为 jsPDF 的框架,它使用 Javascript 创建 PDF。目前,我有一个简单的工具栏,带有一个可以单击的按钮,它将为客户的姓名和购买的产品生成 PDF,创建一个简单的装箱单。这工作正常,它只有一些占位符文本。

客户的姓名和购买的产品位于基于 Web 的系统的主页中(名为 #name 和 #product 的 DIV 中的纯文本)。我想做的是当按下按钮时,它会从相应的 DIV(#name 和 #product)中获取名称和购买的产品,并将文本定义为工具栏中的变量。PDF 生成器仅使用标准变量,因此我需要更多有关如何准确获取工具栏以通过代理脚本获取名称和产品的帮助。

如果有人能阐明如何做到这一点 - 我一直在阅读非常有用的扩展开发指南,但我就是不知道如何去做。