Web开发-如何实现兼容各浏览器的“添加到桌面”快捷方式的功能?

Web开发-如何实现兼容各浏览器的“添加到桌面”快捷方式的功能?

归属感 发布于 2017-02-23 字数 173 浏览 1164 回复 2

比如tuan800等网站,都有一个添加到桌面的功能,就是添加一个快捷方式到桌面。
看到网上有使用activeX实现的,没办法兼容非IE浏览器。
希望找到兼容主流浏览器的方案。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚风撩人 2017-03-07 2 楼

1、asp.net生成桌面快捷方式代码

private void CreateShortcut(string Title, string URL)
{
string strFavoriteFolder;

// “收藏夹”中 创建 IE 快捷方式
strFavoriteFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
CreateShortcutFile(Title, URL, strFavoriteFolder);

// “ 桌面 ”中 创建 IE 快捷方式
strFavoriteFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
CreateShortcutFile(Title, URL, strFavoriteFolder);

// “ 链接 ”中 创建 IE 快捷方式
strFavoriteFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.Favorites) + "\链接";
CreateShortcutFile(Title, URL, strFavoriteFolder);

//「开始」菜单中 创建 IE 快捷方式
strFavoriteFolder = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);
CreateShortcutFile(Title, URL, strFavoriteFolder);
}

private void CreateShortcutFile(string Title, string URL, string SpecialFolder)
{
// Create shortcut file, based on Title
System.IO.StreamWriter objWriter = System.IO.File.CreateText(SpecialFolder + "\" + Title + ".url");
// Write URL to file
objWriter.WriteLine("[InternetShortcut]");
objWriter.WriteLine("URL=" + URL);
// Close file
objWriter.Close();
}

private void btnShortcut_Click(object sender, System.EventArgs e)
{
CreateShortcut("web", http://www.website.cn);
}

2、asp生成桌面快捷方式代码

 <%

id=request("id")

liehuo_net_url=request("liehuo_net_url")

If liehuo_net_url="" Then liehuo_net_url="web"

Shortcut = "[InternetShortcut] " & vbCrLf

Shortcut = Shortcut & "URL=http://www.website.cn" & vbCrLf

Shortcut = Shortcut & "IDList=" & vbCrLf

Shortcut = Shortcut & "IconFile=http://www.website.cn/favicon.ico" & vbCrLf

Shortcut = Shortcut & "[{000214A0-0000-0000-C000-000000000046}] " & vbCrLf

Shortcut = Shortcut & "Prop3=19,2 " & vbCrLf

Shortcut = Shortcut & " " & vbCrLf

Response.AddHeader "Content-Disposition", "attachment;filename="&liehuo_net_url&".url;"

Response.ContentType = "application/octet-stream"

Response.Write Shortcut

%>

夜无邪 2017-02-28 1 楼

用js无法做到兼容各个主流浏览器,再者这个牵扯到了浏览器的安全级别,一般都无法实现。可以用服务器脚本来实现,给你个php版的:

<?php
$Shortcut = "[InternetShortcut]
URL=http://www.website.com/
IconFile=http://www.website/faviconbig.ico
IconIndex=1
IDList=
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
";
$name = urlencode('本网站快捷方式');
header('Content-Type: text/html; charset=utf-8');
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename={$name.url;");
echo $Shortcut;
?>

首先要想出现图标请先确保网站根目录中有 favicon.ico 文件,把上面代码保存到一个php文件里比如叫shortcut.php,然后上传到网站,访问地址:http://www.websit.com/shortcut.php 就会有提示下载一个名为"本网站快捷方式.url"文件,保存在本地就是一个快捷方式!