我正在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,不应该吗?
任何帮助都会非常感激。
答案 0 :(得分:1)
它不适用于除Firefox以外的浏览器,因为它是特定于Firefox的。
来自window.sidebar
的{{3}}:
规范 - “特定于Mozilla。不属于任何标准。”
解决方案?一种方法是确定使用哪个浏览器,并相应地分离代码。
原因是代码的每个部分在其非本机浏览器中运行时都会“中断”(因为对象不存在于其本机浏览器之外 - 例如在IE中,它永远不会进入您的{{ 1}}因为else if {}
的第一部分中的特定于Firefox的对象打破了它,因此您的错误消息)。