代码如下:var www_jb51_net = function (obj, url, title) { var e = window.event || arguments.callee.caller.arguments[0]; var B = { IE : /MSIE/.test(window.navigator.userAgent) && !window.opera , FF : /Firefox/.test(window.navigator.userAgent) , OP : !!window.opera }; obj.o JavaScript(简称JS)是一种轻量级的脚本语言,广泛应用于网页和网络应用开发,能够对用户交互进行响应。在本文中,我们将讨论如何使用JS实现一个兼容IE、Firefox(FF)和Opera(OP)浏览器的加入收藏夹功能。这个功能允许用户将当前网页保存到他们的浏览器收藏夹中,方便日后访问。 我们来看给出的代码: ```javascript var www_jb51_net = function (obj, url, title) { var e = window.event || arguments.callee.caller.arguments[0]; var B = { IE : /MSIE/.test(window.navigator.userAgent) && !window.opera , FF : /Firefox/.test(window.navigator.userAgent) , OP : !!window.opera }; obj.onmousedown = null; if (B.IE) { obj.attachEvent("onmouseup", function () { try { window.external.AddFavorite(url, title); window.event.returnValue = false; } catch (exp) {} }); } else { if (B.FF || obj.nodeName.toLowerCase() == "a") { obj.setAttribute("rel", "sidebar"), obj.title = title, obj.href = url; } else if (B.OP) { var a = document.createElement("a"); a.rel = "sidebar", a.title = title, a.href = url; obj.parentNode.insertBefore(a, obj); a.appendChild(obj); a = null; } } }; ``` 这段代码定义了一个名为`www_jb51_net`的函数,它接收三个参数:`obj`(DOM元素,通常为链接),`url`(要收藏的网页URL),以及`title`(收藏项的标题)。这个函数的主要目的是检测当前浏览器类型,并根据不同的浏览器实现添加收藏的功能。 1. **浏览器检测**: - `B.IE` 检测是否为Internet Explorer浏览器。这里通过检查`navigator.userAgent`字符串中是否包含`MSIE`来判断,并排除掉 Opera。 - `B.FF` 检测是否为Firefox浏览器。通过测试`navigator.userAgent`是否包含`Firefox`来确定。 - `B.OP` 检测是否为Opera浏览器。通过检查`window.opera`对象是否存在来识别。 2. **事件绑定**: - 对于IE,使用`attachEvent`方法绑定`onmouseup`事件。这是因为IE不支持标准的`addEventListener`。然后调用`window.external.AddFavorite(url, title)`,这是IE特有的添加收藏的方法。 - 对于非IE浏览器(尤其是Firefox),如果`obj`已经是`<a>`标签,或者我们正在处理Firefox,我们可以直接设置`<a>`标签的`rel`属性为`sidebar`,`title`属性为`title`,`href`属性为`url`,以触发Firefox的收藏功能。 - 对于Opera,由于它不支持`AddFavorite`方法,我们需要创建一个新的`<a>`标签,设置相应的属性,然后将原始`obj`插入到新`<a>`标签内,这样点击时会触发收藏功能。 3. **防止默认行为**: - `obj.onmousedown = null;` 取消鼠标按下事件的默认行为,这可能是为了防止在某些情况下链接被立即触发。 4. **HTML示例**: ```html <a href="javascript:void(0);return false;" onMouseDown="www_jb51_net(this, '//www.jb51.net', '软件开发网是国内专业的网站建设资源、脚本编程学习类网站')">收藏软件开发网</a> ``` 这是一个HTML链接,它的`onMouseDown`事件调用了`www_jb51_net`函数,传入当前链接元素、网站URL和收藏标题。 总结起来,这段JS代码提供了一种跨浏览器的收藏网页功能,适用于IE、Firefox和Opera。它通过检测浏览器类型并使用相应的API或属性来实现这一功能,确保了良好的兼容性。在实际项目中,这样的代码片段可以提高用户体验,使得用户无论使用哪种浏览器都能方便地收藏喜欢的网页。
- 粉丝: 6
- 资源: 922
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助