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 以外のブラウザでは動作しません。

Mozilla ドキュメントからwindow.sidebar:

仕様- 「Mozilla 固有。標準の一部ではありません。」

ソリューション?1 つの方法は、使用されているブラウザを特定し、それに応じてコードを分離することです。

その理由は、非ネイティブ ブラウザで実行すると、コードの各部分が「壊れる」ためです (オブジェクトはネイティブ ブラウザの外には存在しないelse if {}ためです。if {}それを壊す最初の部分の特定のオブジェクト、したがってエラーメッセージ)。

于 2013-05-17T08:27:41.310 に答える