当前位置: 代码迷 >> J# >> window.URl.createObjectURL()如何在vs中编辑后不能在火狐中运行,在IE中运行没有关问题
  详细解决方案

window.URl.createObjectURL()如何在vs中编辑后不能在火狐中运行,在IE中运行没有关问题

热度:9883   发布时间:2013-02-25 00:00:00.0
window.URl.createObjectURL()怎么在vs中编辑后不能在火狐中运行,在IE中运行没问题
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <script type="text/javascript">
  function head() 
  {
  var headfile = document.getElementById("head_file");
  var imgfile = document.getElementById("head_kan");
  if (headfile.files && headfile.files[0])
  {
  //火狐下的查看
   
  imgfile.src = window.URl.createObjectURL(headfile.files[0]);
  }
  else
  {
  //IE下,使用滤镜。
  headfile.select();
  var imgsrc = document.selection.createRange().text;
  var localimgid = document.getElementById("localimg");
  //图片异常的捕捉,防止用户修改后缀来伪造图片
  try
  {
  localimgid.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
  localimgid.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgsrc;
  }
  catch (e) 
  {
  alert("您上传的图片格式不正确,请重新选择!");
  return false;
  }
  document.selection.empty();
  }
  return true;
  }
   
  </script>
</head>
<body onload="head()">
  <form id="form1" runat="server">
  <div>
  <input type="file" id="head_file" name="head_file" onchange="head()"/>
   
  <div id="localimg" style="width:300px; height:300px;">
  <img alt="" src="#" id="head_kan" style="width:300px; height:300px;" />
   
  </div>
  </div>
  </form>
</body>
</html>


------解决方案--------------------------------------------------------
另外,
 function head()
跟页面的head标记冲突,应该改成
 function headXZ() {
------解决方案--------------------------------------------------------
这种预览方法是不正确的,IE9是不支持的,最好的方法是上传预览
Chrome也是不支持的

兼容的方法
http://dotnet.aspx.cc/file/Multi-Files-Upload-With-Preview.aspx

或者采用Flash预览

有浏览器不支持,你还写这样的代码干嘛
  相关解决方案