转自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安装在了其他目录,请把路径做相应修改
同时兼容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安装在了其他目录,请把路径做相应修改