我正在尝试使用批处理文件在 Windows 7 中从命令行运行 JavaScript 命令。该批处理文件以管理员身份运行。
我正在尝试打开 Internet Explorer 8 窗口,这是较长例程的一部分。如果我只是在批处理文件中调用 IEXPLORE.EXE 而不使用 JavaScript,Internet Explorer 8 可以正常打开:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE"
如果我也调用一个 URL,则会打开指定的页面:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" http://www.google.com
但是,如果我尝试在批处理文件中使用 JavaScript 来控制 Internet Explorer 8 窗口的大小和位置,则 Internet Explorer 窗口会开始打开,但在打开完成之前,例程会中止并显示错误消息“无法下载。未指定的错误。”:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" javascript:window.open("http://www.google.com","newwin","left=10,top=10,width=520,height=250");
Internet Explorer 的选项中启用了活动脚本。
该故障似乎不是由旧版 Microsoft Office 附带的 DOCOBJ.DLL 文件引起的。虽然我确实在运行 Internet Explorer 8 的系统上安装了 Office,因此注册了旧版本的 DOCOBJ.dll,但我后来取消注册了它并重新注册了 IEPROXY.DLL,但 window.open() 故障仍然存在 -
"C:\Program Files (x86)\Internet Explorer\ieproxy.dll"
有人能指出我忽略了什么吗?
答案1
谢谢你,Melikoth。你让我走上了正确的道路。经过多次尝试和错误,在 Windows 7 中找到了此解决方案。
这使用插入符号转义。
将所有 # 替换为 <
OPEN.BAT 的内容 -
echo ^#html^> >> %temp%\temp.htm
echo ^#head^> >> %temp%\temp.htm
echo ^#title^>^#/title^> >> %temp%\temp.htm
echo ^#script language='JavaScript' type='text/javascript'^>function
run(){window.open('','_self');var t = openWin(newWin())}function
newWin(){window.open('http://www.bbc.co.uk/iplayer/console/b007jqsz','','left=10,top=10,width=400,height=600,toolbar=0,location=0,directories=0,status=0,scrollbars=0');window.close()}^#/script^> >> temp%\temp.htm
echo ^#/head^> >> %temp%\temp.htm
echo ^#body onload='run()'^> ^#/body^> >> %temp%\temp.htm
echo ^#/html^> >> %temp%\temp.htm
"C:\Program Files\Internet Explorer\IEXPLORE.EXE" %temp%\temp.htm
答案2
javascript:
不是标准的 URL 方案(如、http
等)。相反,每当浏览器在点击操作期间遇到它时,它都会将以下语句视为 JavaScript 语句并执行它。因此您无法从外部激活 if。https
ftp
答案3
这是我的修改.BAT 批处理文件开放式蝙蝠添加了定时功能,可以延迟打开窗口的关闭,直到子窗口完全打开为止。
将所有 # 替换为 <
echo ^#html^> >> %temp%\temp.htm
echo ^#head^> >> %temp%\temp.htm
回显 ^#title^>^#/title^> >> %temp%\temp.htm
echo ^#script language='JavaScript' type='text/javascript'^>function run(){window.open('','_self');var t = openWin(newWin())}function newWin(){window.open('http://www.bbc.co.uk','','width=382,height=666,left=10,top=10,toolbar=0,location=0,status=0,scrollbars=0');setTimeout('window.close()',5000)}^#/script^> >> %temp%\temp.htm
echo ^#/head^> >> %temp%\temp.htm
echo ^#body onload="run()"^> ^#/body^> >> %temp%\temp.htm
echo ^#/html^> >> %temp%\temp.htm
“C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE” %temp%\temp.htm