2, 
JS的String类,支持replace方法。

解决方案 »

  1.   

    发现一个怪问题为什么页面上的charset写=gb2312
    却可以显示gb2312里面没有的字呢?
    这是为什么?
      

  2.   

    should be:
    var path1 = "c:\\dir1\\dir2"; 
      

  3.   


    var _s = document.getElementById(soundName);
    var url = document.URL url=url.replace(/(^.*?\/\/.*?\/.*?\/).*?$/,"$1")+"tam/abc/sound/"+soundName+".wav"
    alert(url)
    _s.src = url;
    tam/abc是应用程序里面放html的目录
      

  4.   

    回答第一个问题:在vista下,IE也不能显示本地的图片。因为,http://处于保护模式下,而file:///处于非保护模式下。
      

  5.   


    如果本地打开是可以用file:///C:/fruit.jpg这样的写法。不过我是在网上访问的。  
    比如打开c:\test.htm可以看到。  
    通过www.web.com/test.htm看就看不到了。我主要是想当一个文件选择框选择了一个图片后,在确定上传前,先生成一个预览图。在ie下可以,ff不支持么? 
    就是类似这个问题啊!  
      

  6.   

    管你网页啥编码~~gbk和unicode字符转换成10进制或16进制写到gb2312编码的网页里照样能正常显示出来只要客户端OS的字体装的全就行
    下面测试的代码如果以gb2312编码保存成htm文件是不会成功的,将提示有不支持的字符,强行保存会丢失字符;
    如果以utf8编码保存,浏览器仍按照charset=gb2312解析脚本,一样会发生错误产生乱码;
    但如果以十进制来表示字符,不管脚本中meta如何定义,也不论文件存成哪种编码,都可以正常显示字符,点击文本框即可看到效果
    (测试环境:SUSE11 KDE;Opera9.52 Internal)<html><head>
    <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>殺<br>&#27578;<br>
    <input type=text title="unicode字符" onclick="this.value='&#27578;&#27578;';" value="殺">
    </body>
    </html>
      

  7.   

    上面错了,这样:<html><head>
    <meta HTTP-EQUIV="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>殺<br>&#27578;<br>
    <input type="text" value="殺" title="unicode字符" onclick="this.value='&#27578;&#27578;';">
    </body>
    </html>
      

  8.   

    <image src="file:///F:\FaceBook\facebook02\sendPresent\image\10.jpg" height="70px" width="70px"/> 就这个代码如果起个名字叫test.html
    本地可以打开!但是如果这个test.html放在服务器上就没办法打开了
      

  9.   


    晕!哪个是关键字所以不是用replace的方法能转换的
      

  10.   

    1.IE可以正常显示本地的图片,但是FF会出问题。写成下面的形式静态页面可以解决问题! 
    <image src="file:///F:\FaceBook\facebook02\sendPresent\image\10.jpg" height="70px" width="70px"/> 
    但是如果这个html放在服务器上就不行了!察了资料说是安全机制问题!但是现在要做一个上传的东西啊! 
    需要支持ff不知道该怎么办了阿?不知道有没有什么办法啊 如果本地打开是可以用file:///C:/fruit.jpg这样的写法。不过我是在网上访问的。  
    比如打开c:\test.htm可以看到。  
    通过www.web.com/test.htm看就看不到了。我主要是想当一个文件选择框选择了一个图片后,在确定上传前,先生成一个预览图。在ie下可以,ff不支持么? 
    就是类似这个问题啊!  2.js如何把\换成/ 
    例如 
    var path1 = "c:\dir1\dir2"; 
    怎么能把上面字符串alert出 
    c:/dir1/dir2 这样的效果啊?
    3.发现一个怪问题为什么 
    页面上的charset写=gb2312 
    却可以显示gb2312里面没有的字呢? 
    这是为什么?
      

  11.   

    1
    <input type="file" onchange="SetViewPic(this.value)"/><br/>
    <img id="imgView"/>
    <script>
    function SetViewPic(v)
    {//ie6和ff 2.0.0.12测试通过
      document.getElementById("imgView").src="file:///"+v;
    }
    </script>2
    只能说你的字符转义没搞清楚
    var path1 = "c:\\dir1\\dir2"; 
    alert(path1);
    alert(path1.replace(/\\/g,"/"));
    3
    你指的gb2312能显示的非gb2312字符集的字符是哪些??我怎么没碰到过
      

  12.   

    var url = document.URL        url=url.replace(/(^.*?\/\/.*?\/.*?\/).*?$/,"$1")+"tam/abc/sound/"+soundName+".wav" 这种路径就是
    www.web.com/tam/abc/sound/"+soundName+".wav"  的形式呀,我这个是声音文件,你的图片也一样
    ,放到你里html那个目录下,这个目录可以通过上面的形式访问
      

  13.   

    第一个问题是由于安全限制,在 FF 中的确显示不出来,IE7 中也是显示不出来,只不过 IE7 中有其它解决办法。FF 预览客户端的图片,感觉大家都在找解决办法,但都是水中捞月,目前能做的,只是放弃对 FF 在这点上的支持。如果大家有什么解决办法,一定要分享噢。
     
    第二个问题是由于你的 path1 写法不对,应该连续写两个\,因为单独的\代表转义字符。
      

  14.   

    如果把这个代码放在一个test.html里面!然后用ff直接打开确实没问题啊!
    但是如果把这个test.html页面放到虚拟服务目录上就不行了啊!
    下面这样访问http://localhost/test.html就不行了啊!好象说ff的安全机制害怕
    打开一个网络上的页面,该页面如果直接调用一个本地的文件,怕有病毒什么的吧!但是我现在
    做这个功能需要预览本地图片啊!所以不知道能不能有什么办法饶过去啊!
    这个问题我发现是我自己搞乱了我先将原始字符串中的空格用replace(/ /g,'%20')替换成%20 
    然后在用replace(/\\/g,'/') 将第一步的\替换成/
    但是这样做的结果导致,空格又回来了!如果反过来做\又不能变成/了!
    所以一直出错!不知道怎么解决!错误操作如下
    c:\my pic\0.jpg
    然后先替换成了c:\my%20pic\0.jpg
    然后再替换成c:/my pic/0.jpg其实希望结果
    c:/my%20pic/0.jpg不知道该怎么做啊?
      

  15.   


    希望你再好好想一想我上面说的,如果不用特殊的技术(如ActiveX等),在vista下,IE也是不能显示本地的图片的。
    不必徒劳了。
      

  16.   

    1.不好意思,没打开iis调试,没想到ff通过服务器访问时不能使用file:///协议,^___^在ff和opera下只好通过服务器来处理了,服务器页面采用php写的,代码如下
    test.htm
    <html>
    <head>
      <meta http-equiv=Content-Type content="text/html; charset=gb2312"/>
    </head>
    <body>
    <form method="post" enctype="multipart/form-data" action="gotopage.php">
    <input type="file" name="userfile" onchange="SetViewPic(this)"/><br/>
    </form>
    预览图片<br></body></html>
    <script>
    var v="c:\\my pic\\0.jpg";
    v=v.replace(/ /g,"%20");
    alert(v);
    v=v.replace(/\\/g,"/");
    alert(v)//暂时测试ie6和safari【3.0.4】能使用img标签的file:///协议浏览图片
    //其他只能交由服务器处理了,并且容器为iframe标签
    var UseIMGTag=navigator.userAgent.toLowerCase().indexOf("applewebkit")!=-1;
    if(!UseIMGTag&&document.all){//不是safari,则判断下是否为ie7以下的浏览器
    var m=/msie(.+?)(?=;)/i.exec(navigator.userAgent);
    if(m&&parseInt(m[1])<7)UseIMGTag=true;
    }
    var Reg=/\.(gif|jpg|bmp|png)$/iif(UseIMGTag)document.write("<img id='imgView'/>");
    else document.write('<iframe src="javascript:void(0)" frameborder="1"  '
    +'style="width:100px;height:100px;" id="ifViewPic" name="ifViewPic"></iframe>');
    function $(id){return document.getElementById(id);}
    function SetViewPic(obj)
    {
    //先检查是否为图片
    if(!Reg.test(obj.value)){
    alert("不是图片文件!");
    return;
    }
        if(UseIMGTag)$("imgView").src="file:///"+obj.value;//可以使用file:///协议的
        else{//提交到viewpic.php,然后输出临时文件
    var f=obj.form;
    var oldAC=f.action;
    var oldTag=f.target;
    f.target="ifViewPic";
    f.action="viewpic.php";
    f.submit();
    //改回默认值
    f.target=oldTag;
    f.action=oldAC;
    }
    }
    </script>viewpic.php
    <?php
    $type=$_FILES['userfile']['type'];
    if(!preg_match('/(jpeg|jpg|png|gif|bmp)$/',$type))die("{$type}为不可以浏览器的类型!");$tmpPath=$_FILES['userfile']['tmp_name'];
    if(is_uploaded_file($tmpPath)){
    header("content-type:$type");
    readfile($_FILES['userfile']['tmp_name']);
    }
    else die("上传失败无法预览!");
    ?>2,没发现你的问题啊var v="c:\\my pic\\0.jpg";
    v=v.replace(/ /g,"%20");
    alert(v);
    v=v.replace(/\\/g,"/");
    alert(v)
      

  17.   

    1、服务器上是要有个专门的文件夹,然后都放在此文件下
    2、用replace()替换
      

  18.   


    1.就是说还是要上传到服务器了啊? 
    2.var v="c:\\my pic\\0.jpg"; 
    v=v.replace(/ /g,"%20"); 
    alert(v); 
    v=v.replace(/\\/g,"/"); 
    alert(v) 
    这个怎么能全部替换呢就是replaceall的意思啊?
      

  19.   

    ie6和safari不需要,ff和opera需要,我给你的代码里面已经判断过了
    //添加原型函数
    String.prototype.replaceall=function(){
      return this.replace(/( |\\)/g,function($1){if($1==" ")return "%20";else if($1=="\\")return "/";});
    }
    var v="c:\\my pic\\0.jpg"; 
    alert(v);
    v=v.replaceall();//使用原型更改值
    alert(v);