V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rubyking
V2EX  ›  程序员

Windows 下如何通过 javaScript 创建 web 快捷方式到桌面

  •  
  •   rubyking · 2014-07-01 14:42:29 +08:00 · 6551 次点击
    这是一个创建于 3796 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求是:如果用户在web页面上点击收藏网站时,用户桌面上会生成该网站的快捷方式。
    16 条回复    2014-07-03 10:20:49 +08:00
    learnshare
        1
    learnshare  
       2014-07-01 15:01:58 +08:00
    浏览器一般没有本地访问能力(创建快捷方式是写本地文件),可能只有 IE 支持吧
    est
        2
    est  
       2014-07-01 15:08:56 +08:00
    win98里面有个技巧是用iframe显示file://XXX/desktop 路径,然后诱导用户拖拽一个链接进去,就搞定了。。。。。当然,很多做蠕虫的人是诱导用户拖动到自启动文件夹~~~~~~~
    rubyking
        3
    rubyking  
    OP
       2014-07-01 15:37:57 +08:00
    @learnshare @est 改成用PHP删除文件了,但是不知道能不能指定浏览器打开,比如用户打开该web快捷方式时候默认用IE打开,但是用户默认浏览器可能不是IE,可能是google chrome等
    lm902
        4
    lm902  
       2014-07-01 15:40:12 +08:00 via iPhone
    HTML5 File操作
    caoyue
        5
    caoyue  
       2014-07-01 17:09:32 +08:00
    应该是做不到你要的效果,不过有个可能接近你的要求的方法:
    1. 首先生成一个 InternetShortcut (后缀为 .url 或者 .website):
    可以去 MSDN 或者其他地方找找相关文档。 当然更简单的办法是直接在 IE 中打开网站,拖动到桌面生成快捷方式,用文本方式打开这个快捷方式就可以看到里面的内容
    2. 点击收藏的时候服务器返回上面生成的内容,设置 Content-Type 为 "application/octet-stream". 这样点击收藏实际上是「下载」了预定义的快捷方式,不能实现的就是指定用户下载的位置了。

    可能细节不一定完全正确,但是曾经用过这种方法,应该是可以实现的。
    tabris17
        6
    tabris17  
       2014-07-01 17:18:06 +08:00
    IE6的话可以利用各种漏洞

    不利用漏洞 Noway
    gouflv
        7
    gouflv  
       2014-07-01 17:36:13 +08:00
    这种需求都是异想天开
    hotcha0111
        8
    hotcha0111  
       2014-07-01 17:40:37 +08:00
    Chrome 有创建应用快捷方式. 感觉这种需求是在作恶...
    tom
        9
    tom  
       2014-07-01 18:16:08 +08:00 via Android
    我们的做法是,亲自给用户在桌面创建快捷方式,还贴心的把图标换成客户的LOGO
    rubyking
        10
    rubyking  
    OP
       2014-07-02 10:06:36 +08:00
    @lm902 低版本的浏览器不兼容
    rubyking
        11
    rubyking  
    OP
       2014-07-02 10:09:40 +08:00
    @caoyue 试了一下,好像不可以,不知道是不是我操作不当造成的,我用ie添加一个网站到收藏夹,然后从收藏夹把这个收藏的页面拖拽到桌面,但是打开这个快捷方式的时候是用chrome打开的(我的默认浏览器是chrome)
    rubyking
        12
    rubyking  
    OP
       2014-07-02 10:10:36 +08:00
    @tom 能指定用IE打开吗?
    rubyking
        13
    rubyking  
    OP
       2014-07-02 10:13:46 +08:00
    @tabris17 需要考虑其他浏览器啊。。
    rubyking
        14
    rubyking  
    OP
       2014-07-02 10:15:40 +08:00
    @hotcha0111 没办法,咱只是个码农,做什么都的看天气啊
    lm902
        15
    lm902  
       2014-07-02 11:24:00 +08:00
    var link = document.createElement("a");
    link.href = "/";
    link.innerText = "网站名";
    link.addEventListener("click" function(event) {
    alert("拖动到桌面");
    event.preventDefault();
    });
    parentElement.appendChild(link);
    rubyking
        16
    rubyking  
    OP
       2014-07-03 10:20:49 +08:00
    @lm902 这个感觉用户体验不好吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:11 · PVG 09:11 · LAX 17:11 · JFK 20:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.