2009-06-01 63 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"