0

我正在 Web 应用程序中实现书签功能。在 FF 中工作正常(Chrome 不支持它),但在 IE8 中会引发错误,甚至在 IE9 和 IE10 中都不起作用。

这是代码(它在点击处理函数中,非常简单):

if(window.sidebar) {
    window.sidebar.addPanel("EXOP - GRD", $(this).data('href'), "");
} else if(window.external && window.external.AddFavorite) {
    window.external.AddFavorite($(this).data('href'), "EXOP - GRD");
} else if(window.opera) {
    $(this).attr({
        href:$(this).data('href'),
        title:"EXOP - GRD",
        rel:"sidebar"
    })
} else {
    console.log("Bookmark Action not supported");
    return false;
}

但是 IE8 在第 3 行中断,指向if错误Object doesnt support This Property or Method。什么???

这些东西也应该在 IE9 和 10 中工作,不是吗?

任何帮助将非常感激。

4

1 回答 1

1

它不适用于 Firefox 以外的浏览器,因为它是特定于 Firefox 的。

来自Mozillawindow.sidebar文档:

规范- “Mozilla 特定。不属于任何标准。”

解决方案?一种方法是确定正在使用哪个浏览器,并相应地分离代码。

原因是代码的每个部分在非本地浏览器中运行时都会“中断”(因为对象在其本地浏览器之外不存在 - 例如在 IE 中,由于 Firefox,它永远不会出现在你else if {}的面前 -if {}破坏它的第一部分中的特定对象,因此您的错误消息)。

于 2013-05-17T08:27:41.310 回答