即尝试打开本地文件时拒绝访问8.0

时间:2010-12-02 20:53:29

标签: javascript windows security internet-explorer

此脚本适用于IE 6,但不适用于IE 8.0 我的用户现在收到“拒绝访问”错误。我引用了哪些设置来启用我的用户 本地文件访问,以便此脚本可以工作?

<script language="JavaScript">
function viewFile(selectedItem) {
 for (i=0; i<selectedItem.options.length; i++) {
  if ((selectedItem.options[i] != null) && (selectedItem.options[i].selected == true)) {
   window.open("file://"+selectedItem.options[i].text);
  }
 }
}
</script>

用户可以从本地驱动器中选择多个文件。该列表存储在文本框中,然后单击列表中的一个选定文件。

示例:

selectedItem.options[i].text = C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Sunset.jpg

1 个答案:

答案 0 :(得分:3)

由于IE8的安全模型比IE6严格得多,你不能再“开箱即用”了。

您的选择有限,但可以包括:

  1. 开发Flash组件以访问用户的本地驱动器。

  2. 将网站实施为HTA(html应用程序),以提升对用户文件系统的访问权限。

  3. 让访问者通过将您的站点添加到可信域列表中来自定义其IE安全设置,然后让受信任的域访问该文件:/// protocol(我不确定哪个安全设置适用于此特殊功能,或者甚至可以使用。)

  4. 开发一个pluggin或bho对象(类似于flash组件,但用C ++或C#编写)

  5. 创建一个IE上下文菜单 - http://msdn.microsoft.com/en-us/library/bb735853(v=vs.85).aspx,它也具有提升的权限。

  6. 作为旁注,c:\ paths的正确文件方案应如下所示:

    file:///c:/documents%20and%20settings/file.jpg

    请注意/之后的file:个空格转义空格,并且所有\都切换为/