javascript - 是否有任何跨浏览器兼容的方法可以将 Web URL 保存到用户桌面?

标签 javascript google-chrome url browser desktop

我正在为某人开发一个项目,该项目希望用户能够将 Web URL 从网页拖到桌面上,并为他们的网站创建一个书签。他们希望图标(网站的 Logo )始终与网址一起保存。

Chrome 有什么办法可以做到这一点吗?有没有办法明确指定网站的桌面图标(而不仅仅是获取网站图标)?

由于隐私问题,我知道在 JS 中编写书签和文件保存脚本在跨浏览器上有些困难,但如果实际上有任何编程方式可以做到这一点,我也会感兴趣。

根据我迄今为止的尝试,在 Web URL 中包含图标的唯一方法是在使用 Firefox 或 IE 时抓取地址栏中的站点信息并将其拖到桌面上。然后它会将网站的图标保存为图标。我还在网站的标题中添加了额外的图标大小,以防它依赖于此。

<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">

理想情况下,我希望用户能够将 anchor 链接从网站拖动到桌面,并让保存到桌面的图标成为明确定义的网站 Logo (如果可能)。

最佳答案

出于安全考虑,浏览器与 native 操作系统的交互非常有限。

不幸的是,你所要求的是不可能的。 JavaScript 运行在沙盒环境中,而不是在操作系统上执行,因此无法通过这种方式在网站和本地计算机之间进行交互。

您最好拖放超链接,Windows 支持该功能,但是一旦链接出现在最终用户的桌面上,您就无法对其进行自定义。将使用 anchor 标记中提供的文本创建链接,并将链接到 href 中提供的 url。

从顶部的 URL 栏中抓取图标是浏览器应用程序和 Windows 之间受支持的交互,并且不会将逻辑扩展到网页以允许相同的操作。

关于javascript - 是否有任何跨浏览器兼容的方法可以将 Web URL 保存到用户桌面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56761395/

相关文章:

plugins - 谷歌浏览器插件

javascript - 将 URL 转换为 json

java - 在 JEditorPane 中显示来自 URL 的 html 图像。可能用 ImageView 吗?

javascript - Meteor 1.0 MiniMongo 不向客户端提供对象

javascript - 在 jQuery DataTables 中使用连字符对数据进行排序

javascript - 没有未使用的变量

javascript - Google Chrome 与 Edge 中的 Html 动画不同。自动播放解决对动画的帮助?

javascript - 实现 Chrome 扩展开/关切换按钮

javascript - 如何让这个可折叠的 DIV 工作?

java - 我可以在 url 哈希中放入未编码的斜杠吗?