当我从 JavaScript 调用 window.open() 时,我收到带有消息“行:xxx 错误:不支持此类接口(interface)”的错误对话框
Google 将我引导至早在 IE4 时就提到我需要在多个 DLL 上运行 regsrvr32 的网站。
有没有更好的解决方案?
编辑:请求的确切代码
<html><head>
<script type="text/javascript">
function windowOpen() {
window.open("http://localhost/mysite/mypage.asp", "myWindowName", "");
}
</script></head>
<body>
<button onclick="windowOpen();return false;">Hi There</button>
</body></html>
编辑2: 提供的答案都可以追溯到 IE4/Win95 时代。我是说,认真的??无论如何,我在 IE8 中禁用了平滑滚动(!!!)并且还尝试注册 Shoban 提到的知识库文章中列出的控件,但在尝试注册 shdocvw.dll 时遇到错误(模块“shdocvw.dll”已加载但找不到入口点 DllRegisterServer。请确保“shdocvw.dll”是有效的 DLL 或 OCX 文件,然后重试。)
最佳答案
首先,尝试以下操作,看看问题是否消失:
选项 1
第 1 步:修复 IE
将以下内容复制并粘贴到以管理员身份运行的命令提示符中,然后按:
"%systemroot%\system32\regsvr32.exe" "C:\Program Files\Internet Explorer\ieproxy.dll"
如果你运行的是 64 位 Windows,试试这个:
"%systemroot%\system32\regsvr32.exe""C:\Program Files> (x86)\Internet Explorer\ieproxy.dll
"
选项 2
如果上述方法不起作用,请尝试以下两个步骤。
第 1 步:重新注册所有 DLL
以管理员身份打开命令提示符。输入以下命令:
FOR /R C:\ %G IN (*.dll) DO "%systemroot%\system32\regsvr32.exe" /s "%G"
此时您可能会弹出一些错误窗口,只需忽略它们并在命令提示符停止搅动时将其关闭。
第 2 步:修复 IE
将以下内容复制并粘贴到以管理员身份运行的命令提示符中,然后按:
"%systemroot%\system32\regsvr32.exe" "C:\Program Files\Internet Explorer\ieproxy.dll"
如果你运行的是 64 位 Windows,试试这个:
"%systemroot%\system32\regsvr32.exe""C:\Program Files> (x86)\Internet Explorer\ieproxy.dll
"
来源:
关于javascript - IE8 - window.open() - "No such interface supported",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/935614/