window.open ("/C:/test.html");这个在IE6下面可以正常打开,但是换做IE7就不行,打开的是file:///C:C:/test.html
自动加了个C:/请问这个怎么才能同时兼容IE6和IE7呢?
google了半天也没找到,本身不是做js的,不懂呀还望各位大大帮忙下。谢谢了!

解决方案 »

  1.   

    window.open("file:///C:/test.html");
    或者
    window.open("c:\\test.html");
      

  2.   

    感谢inpool,但是上面只是我举的一个例子,实际情况是:
    var prtURL = expFrame.location.pathname;
    window.open(prtURL); 
    其中prtURL取得的值就是/C:/test.html
      

  3.   

    把前导的/去掉
    prtURL = prtURL.replace(/^\/*/,"");
      

  4.   

    保险点的话把前导的空格和\通通先去掉prtURL = prtURL.replace(/^[\s\/]*/,"");
      

  5.   

    非常感谢
    改了之后IE7和chrom上面都可以正常显示了,但是firefox却打不开了。
    明天再看看,好晚了哦,呵呵
      

  6.   

    这样改还是不行,本地可以了,但是放web server里,从外部访问会出错。
    我这样改:
    判断,如果prtURL第三个字符为冒号,则:
    prtURL="file://"+prtURL;
    否则,不做任何改动。关键是如何判断第三个字符是否为冒号呢?
      

  7.   

    OK,问题已经解决了
    if (prtURL.indexOf(":")>1)
    {
      prtURL = "file://"+prtURL;
    }
      

  8.   

    建议window.open("c:\\test.html");这么写
      

  9.   

    这样写不行,因为文件不一定放在C盘,可能放在任何地方。
    如果加上file://之后,IE就不会再自作主张的加上“file://c:”了
      

  10.   

    var reTest = /^.{2}:/
    if(reTest.test(prtURL)){
      prtUrl.replace(/^\//,"").replace(/\//g,"\\");
      

  11.   

    漏了半边大括号
    var reTest = /^\/.:\//; 
    if(reTest.test(prtURL)){    //如果第一个字符是"/"且第三、四个字符是":/"
      prtUrl.replace(/^\//,"").replace(/\//g,"\\");
    }
      

  12.   


    function openWindow() {
    var myObject = new Object();
       showModalDialog("你的参数地址", myObject,
        "dialogWidth:650px;dialogHeight:200px;help:no;scroll:no;status:no");
    }window.open()还是IE6的产物了。
      

  13.   


    请问IE7里面有没有代替window.open的函数呀?
      

  14.   

    我没发现,showModalDialog打开的是模式窗口,就是新打开的窗口关闭以前,不能对原窗口进行操作,跟window.open是不一样的。