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

javascript - XMLHttpRequest 数据可以存储在 localStorage 中吗?

我正在编写一个 Safari 扩展,它使用 jQuery.ajax 为一些 XML 数据生成 XMLHttpRequest。如果我在流程数据函数中执行 console.log(data),我会得到一个可以遍历的项目 Document。

我想将此 ajax 数据存储在 localStorage 中。所以在 processDocument 函数的前几行我有这个:

console.log 会显示:
post-load:本地存储阵列中有 1 项。
post-load data: [object Document]
post-load myData: [object Document]

所以看起来我这里有有效数据。但是 messageHandler 函数在响应工具栏上的按钮时也会像这样轮询本地存储:

此处的控制台日志会显示:
本地存储阵列中有 1 项。
0:未定义
myData 已定义

为了将此 XML 数据正确存储在 localStorage 中,我需要做些什么吗?localStorage 不应该保留这个对象的完整性吗?也许我在这里遗漏了一些东西。

0 投票
2 回答
193 浏览

javascript - 查找网址并替换?

有什么办法可以做到这一点...用户按下按钮,按钮找到所有网址,example.com并将其替换为sub.example.com

0 投票
3 回答
3826 浏览

javascript - Safari 扩展中的弹出窗口

我正在尝试构建我的第一个 safari 扩展程序,但我对一些基本概念不知所措。

第一个障碍是从工具栏按钮打开一个弹出窗口,就像 Ebay Safari 扩展一样。

http://anywhere.ebay.com/browser/safari/welcome/

0 投票
1 回答
747 浏览

jquery - 如何使用 JQuery 将一个 URL 更改为另一个 URL

我有以下脚本:

我想要发生的是,当按下菜单栏按钮时,它会运行介于两者之间的代码(在这种情况下,('a[href="http://example.com"]').attr('href', 'http://sub.example.com');),它会找到所有链接并将它们替换为修改后的版本。我怎样才能做到这一点?

0 投票
1 回答
2275 浏览

javascript - 在新窗口/活动选项卡中打开 URL

我知道如何在新标签中打开一个窗口:

我知道如何创建一个新窗口:safari.application.openBrowserWindow();

如何在新创建的窗口中打开 URL?或者如何在 activeBrowerWindow 的活动选项卡中打开 URL?

0 投票
1 回答
195 浏览

javascript - 注入脚本和 https

是否允许 Safari 扩展注入脚本访问安全页面?当我尝试访问 GMail 的安全页面时,我在“ServiceLogin”处进入了 console.log “Script Cancelled”。

0 投票
1 回答
210 浏览

javascript - Safari 扩展修改为主页内的 iframe

嗨,我编写了简单的 Safari 扩展程序来显示带有当前访问网站的 URL 的 QR 码。这是我将代码附加到页面的代码的一部分。

一切都很好,但糟糕的是,代码也附加到 iframe 内容中。如果每个站点都包含 facebook 之类的框和许多其他废话,这实际上是一个讨厌的问题:D 我可以以某种方式仅将元素附加到主体吗?我什么时候会使用某种“body child of body”选择器它不起作用..它根本不能,因为有两个独立的 DOM?我对吗?

谢谢你的建议,希望你能理解我的问题。。

0 投票
1 回答
661 浏览

javascript - Safari 扩展在每个页面上覆盖一个 iframe

我正在编写一个 Safari 扩展程序。当我单击工具栏中的按钮时,它需要在页面顶部覆盖来自另一个来源的内容。

如何将它定位在浏览器的左上角,在内容的顶部?当我点击关闭按钮时,iframe 应该被销毁,显示之前被掩盖的内容?

谢谢!

0 投票
1 回答
660 浏览

javascript - Safari 扩展修改 iframe?

所以我放弃了试图保护我注入的脚本的 jQuery UI 对抗世界上所有的 CSS。我决定创建一个 iframe。

当我单击工具栏按钮时,我在注入的脚本中有此代码,以查看 iframe 是否存在:

如果#myiframe 不存在,我将创建它。我使用 popup.html 作为 iframe 的 src。在 popup.html 中,我有一个 id 为“content”的 div。我的目标是将一堆 HTML 数据的 strData 填充到带有 append 的#content 中。这是行不通的。

iframe 被完美地绘制,并根据我单击按钮打开和关闭。但我无法附加 strData。我知道可以做到,但我不知道怎么做。这里有一个例子http://mg.to/test/dynaframe.html但是当我尝试这种方法时,下面的内容完全空白。帮助!

0 投票
2 回答
1095 浏览

javascript - Jquery 出现奇怪的 firefox-safari-chrome-ie8+ 扩展问题

我为firefoxgoogle chromesafariie8+开发了一个扩展。它在 google 邮件界面中插入一个按钮。该按钮应该在电子邮件页脚中插入一些自定义文本。如果我访问标准的谷歌邮件地址(你可以在这里这里观看) ,它在所有四个上都可以正常工作。

相反,如果我通过谷歌应用程序访问 gmail ,它几乎都会失败。唯一运行良好的插件帽子是谷歌浏览器。在所有其他人中,该按钮已正确添加,但是当我单击它时,这不会在电子邮件页脚中添加任何内容并产生以下错误。

在 Firefox 中,我得到以下 jquery 错误控制台:

在萤火虫中:

此外,在 Safari 中:

在 Internet Explorer 中仅撰写邮件作品,转发和回复没有。

这是我注入 gmail 网页的 jquery 代码: