2009-06-01 58 views
7

当我从JavaScript调用window.open(),我得到消息的错误对话框中的“支持没有这样的接口”,“线路:XXX错误:不支持此接口”IE8 - window.open() -

谷歌引导我到网站引用早在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> 

EDIT2: 所提供的答案都回去IE4/Win95的日子。我的意思是,认真??无论如何,我禁用IE8(!!!)平滑滚动,并试图注册Shoban提到的kb文章中列出的控件,但尝试注册shdocvw.dll时出现错误(模块“shdocvw.dll”已加载但没有找到入口点DllRegisterServer,请确保“shdocvw.dll”是有效的DLL或OCX文件,然后再试一次。)

+1

你能准确显示线,让你这个错误? – 2009-06-01 16:41:44

+1

在IE8(?) – Shoban 2009-06-01 17:00:54

回答

4

嗯,我不认为有更好的解决方案。 搜索“没有这样的接口支持”window.open给了我成千上万的结果pointing to the same problem。他们都说这个问题是一个注册表项损坏,所以问题是本地的,同样的代码不会影响其他机器。

0

检查是否安装了任何工具栏。我有同样的问题,这造成的,因为我跑小提琴手的HTTP调试代理

+0

中适合我工作你可能想详细说明你的回应,以备将来参考。谢谢! – 2013-01-05 21:07:33

4

首先,尽量只以下,看看问题是否会消失:

OPTION 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

OPTION 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

来源:

0

在Win10的x64与IE11这个解决我的问题:

regsvr32 "C:\Windows\SysWOW64\ieproxy.dll"