从批处理文件运行 JavaScript window.open 命令时出错

从批处理文件运行 JavaScript window.open 命令时出错

我正在尝试使用批处理文件在 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。httpsftp

答案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

相关内容