如题。
网上搜了段js:<script language="JavaScript">function toDesktop(sUrl,sName){try   { var WshShell = new ActiveXObject("WScript.Shell"); var oUrlLink = WshShell.CreateShortcut(WshShell.SpecialFolders("Desktop") + "\\" + sName + ".url"); oUrlLink.TargetPath = sUrl; oUrlLink.Save(); alert('已保存桌面快捷方式,名称为:\n'+sName);}   catch(e)   {             alert("当前IE安全级别不允许操作!");   }} </script><input name="btn" type="button" id="btn" value="加入桌面" onClick="toDesktop('http:\//www.buguge.com/','test link')">
运行之后,发现必须首先要把站点加入到受信任站点。否则就提示"当前IE安全级别不允许操作!"
   我们总不能让网站的访客这么设置呀,对吧,
哪位有更好的方法,谢谢!

解决方案 »

  1.   


    谢谢您的建议, 不过我建了个快捷方式放到了我的网站文件夹里, 欲使用下面的方式下载:
    【<a href="m2.url" title="add a link to my desktop">加入桌面</a>】
    结果不行, 说找不到资源。 我知道像.rar的文件可以用<a>标签下载。但这个可怎么弄呢?
      

  2.   

    新建一个页面专做输出.
    代码如下. ResponseFile(Server.MapPath(@"/files/url/ChinaLoveMatch.net.url"), "ChinaLoveMatch.net.url", "application/octet-stream");
            /// <summary>
            /// 以指定的ContentType输出指定文件文件
            /// </summary>
            /// <param name="filepath">文件路径</param>
            /// <param name="filename">输出的文件名</param>
            /// <param name="filetype">将文件输出时设置的ContentType</param>
            public static void ResponseFile(string filepath, string filename, string filetype)
            {
                Stream iStream = null;            // 缓冲区为10k
                byte[] buffer = new Byte[10000];            // 文件长度
                int length;            // 需要读的数据长度
                long dataToRead;            try
                {
                    // 打开文件
                    iStream = new FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.Read);                // 需要读的数据长度
                    dataToRead = iStream.Length;                HttpContext.Current.Response.ContentType = filetype;
                    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + Utils.UrlEncode(filename.Trim()).Replace("+", " "));                while (dataToRead > 0)
                    {
                        // 检查客户端是否还处于连接状态
                        if (HttpContext.Current.Response.IsClientConnected)
                        {
                            length = iStream.Read(buffer, 0, 10000);
                            HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
                            HttpContext.Current.Response.Flush();
                            buffer = new Byte[10000];
                            dataToRead = dataToRead - length;
                        }
                        else
                        {
                            // 如果不再连接则跳出死循环
                            dataToRead = -1;
                        }
                    }
                }
                catch (Exception ex)
                {
                    HttpContext.Current.Response.Write("Error : " + ex.Message);
                }
                finally
                {
                    if (iStream != null)
                    {
                        // 关闭文件
                        iStream.Close();
                    }
                }
                HttpContext.Current.Response.End();
            }
      

  3.   

    没有用户的允许时不可能的。
    凤凰网的我看了,其实就是用php提供了一个网站快捷方式的[凤凰网.url]文件的下载。具体的做法就是以当前网页的地址为参数,即时生成一个.url文件,然后弹出文件保存的对话框就可以了。
      

  4.   

    php的文件保存弹出框如下: //文件名
    $filename = "fenghuangwang.url"; header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header("Content-Disposition: attachment; filename=".basename($filename).";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));
    @readfile($filename);
    exit(0);