gpt4 book ai didi

javascript - 检测是否安装了 Safari 扩展

转载 作者:行者123 更新时间:2023-11-30 06:03:08 26 4
gpt4 key购买 nike

有没有办法通过 JavaScript 检测是否已安装 Safari 扩展? https://extensions.apple.com有一些方法可以做到这一点,因为如果扩展已经安装,他们会将安装链接更新为“已安装”。但是,我无法弄清楚他们是如何做到的。我已经将其追溯到“SafariExtensionGalleryController”类型的对象,但据我所知。

Apple 是否只是为了他们的东西而在扩展系统中加入了特殊的 Hook ?

丢失...

谢谢,乔尔

最佳答案

如果您是扩展的作者,那么您可以检测是否安装了您自己的扩展。我只是将一个不可见的字符串注入(inject)我的网站,然后在加载页面时扫描它。如果字符串已被注入(inject),则必须安装我的扩展,然后您可以对结果做任何您喜欢的事情。

identifier.js

if (window.top === window) 
{
//detect if the extension has been installed and disable "Install" button if that's the case
if (document.title === "YOUR PAGE TITLE") //we don't want to inject the string into any website, just ours
{
var p = document.createElement("noscript");
var texto = document.createTextNode("Extension Installed");
p.appendChild(texto);

document.body.appendChild(p);
}
}

我怀疑 Apple 使用 Safari 用来显示网站的 WebView 以编程方式执行此操作,然后在内部运行 javascript 脚本,根据 Safari 代码中返回的扩展更改扩展网站。

希望这对您有所帮助!

关于javascript - 检测是否安装了 Safari 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com