IE6, IE7, IE8, Firefox 兼容的“加入搜藏夹”脚本


转自http://blog.faraway-wind.net/index.php/articles/ie-firefox-compatible-script-for-bookmarking.html
同时兼容IE (版本至最新的IE8) 和 Firefox 的“加入收藏夹”的 Javascript 脚本如下:

查看源代码打印帮助01 function addBookmark(url, title) { 

02     if( document.all ) { 

03         try

04         { 

05             window.external.addFavorite(url, title); 

06         } 

07         catch (e1) 

08         { 

09             try

10             { 

11                 window.external.addToFavoritesBar(url, title); 

12             } 

13             catch (e2) 

14             { 

15                 alert('加入收藏失败,请您手工加入。') 

16             } 

17         } 

18     } else if (window.external) { 

19         window.sidebar.addPanel(title, url,""); 

20     } else { 

21         alert('加入收藏失败,请您手工加入。') 

22     } 

23 }

document.all 用来判断是否为IE,window.external.addFavorite是IE7以及以下版本的加入收藏夹接口,window.external.addToFavoritesBar则是IE8的接口。window.external 用于判断是否为Firefox,window.sidebar.addPanel是Firefox加入收藏夹的接口。

在某些IE7中,以上脚本可能会失效,错误原因为window.external.addFavorite元素不存在。这种情况不是由于脚本本身的不健全造成的,而是浏览器自身的Bug。通常这个问题会出现在安装过IE8,又降级到IE7的电脑上(偶的电脑没装过IE8也有这个问题)。导致该错误的原因貌似是注册表中的一个dll组件指向了错误的文件。问题的描述和解决可以参见这篇帖子 http://www.blogjava.net/xiaomage234/archive/2009/05/07/269450.html。我简述如下。

查询注册表项

查看源代码打印帮助1 HKEY_CLASSES_ROOT\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0\win32

如果其中默认项 (default) 为

查看源代码打印帮助1 C:\WINDOWS\system32\shdocvw.dll

说明你的IE7有bug。把该键值改为

查看源代码打印帮助1 C:\WINDOWS\system32\ieframe.dll

重启IE,即可解决问题。
注意:如果你的windows安装在了其他目录,请把路径做相应修改

你可能感兴趣的:(JavaScript,windows,IE,脚本,firefox)