IE7下的window.open问题

hammly 2009-12-22 11:24:48
window.open ("/C:/test.html");

这个在IE6下面可以正常打开,但是换做IE7就不行,打开的是file:///C:C:/test.html
自动加了个C:/

请问这个怎么才能同时兼容IE6和IE7呢?
google了半天也没找到,本身不是做js的,不懂呀。。。还望各位大大帮忙下。谢谢了!
...全文
231 17 打赏 收藏 举报
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiotianshi 2009-12-24
  • 打赏
  • 举报
回复
呵呵 看看你们说的真热闹
q107770540 2009-12-24
  • 打赏
  • 举报
回复
学习 +jf
Inpool 2009-12-24
  • 打赏
  • 举报
回复
我没发现,showModalDialog打开的是模式窗口,就是新打开的窗口关闭以前,不能对原窗口进行操作,跟window.open是不一样的。
Inpool 2009-12-23
  • 打赏
  • 举报
回复
保险点的话把前导的空格和\通通先去掉

prtURL = prtURL.replace(/^[\s\/]*/,"");
Inpool 2009-12-23
  • 打赏
  • 举报
回复
把前导的/去掉
prtURL = prtURL.replace(/^\/*/,"");
hammly 2009-12-23
  • 打赏
  • 举报
回复
感谢inpool,但是上面只是我举的一个例子,实际情况是:
var prtURL = expFrame.location.pathname;
window.open(prtURL);
其中prtURL取得的值就是/C:/test.html
hammly 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wangyuepeng 的回复:]
JScript codefunction openWindow() {var myObject=new Object();
showModalDialog("你的参数地址", myObject,"dialogWidth:650px;dialogHeight:200px;help:no;scroll:no;status:no");
}
window.open()还是IE6的产物了。
[/Quote]

请问IE7里面有没有代替window.open的函数呀?
wangyuepeng 2009-12-23
  • 打赏
  • 举报
回复

function openWindow() {
var myObject = new Object();
showModalDialog("你的参数地址", myObject,
"dialogWidth:650px;dialogHeight:200px;help:no;scroll:no;status:no");
}

window.open()还是IE6的产物了。
Inpool 2009-12-23
  • 打赏
  • 举报
回复
漏了半边大括号
var reTest = /^\/.:\//; 
if(reTest.test(prtURL)){ //如果第一个字符是"/"且第三、四个字符是":/"
prtUrl.replace(/^\//,"").replace(/\//g,"\\");
}
Inpool 2009-12-23
  • 打赏
  • 举报
回复
var reTest = /^.{2}:/
if(reTest.test(prtURL)){
prtUrl.replace(/^\//,"").replace(/\//g,"\\");
hammly 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hitlcyu19 的回复:]
建议window.open("c:\\test.html");这么写
[/Quote]
这样写不行,因为文件不一定放在C盘,可能放在任何地方。
如果加上file://之后,IE就不会再自作主张的加上“file://c:”了
hitlcyu19 2009-12-23
  • 打赏
  • 举报
回复
建议window.open("c:\\test.html");这么写
hammly 2009-12-23
  • 打赏
  • 举报
回复
OK,问题已经解决了
if (prtURL.indexOf(":")>1)
{
prtURL = "file://"+prtURL;
}
hammly 2009-12-23
  • 打赏
  • 举报
回复
这样改还是不行,本地可以了,但是放web server里,从外部访问会出错。
我这样改:
判断,如果prtURL第三个字符为冒号,则:
prtURL="file://"+prtURL;
否则,不做任何改动。

关键是如何判断第三个字符是否为冒号呢?
hammly 2009-12-23
  • 打赏
  • 举报
回复
非常感谢
改了之后IE7和chrom上面都可以正常显示了,但是firefox却打不开了。
明天再看看,好晚了哦,呵呵
Inpool 2009-12-22
  • 打赏
  • 举报
回复
主要是你前面不应该加一个"/"
/表示根目录。你的情况说明你这个页面是放在C盘的
Inpool 2009-12-22
  • 打赏
  • 举报
回复
window.open("file:///C:/test.html");
或者
window.open("c:\\test.html");
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-22 11:24
社区公告
暂无公告