2011-01-26 4 views
1

私はブラウザの拡張機能を使用しています。私はいくつかのアイコンをGoogle検索ページのリンクの隣に置いています。これらのアイコンはいくつかのアクションを引き起こし、ユーザーがクリックするとバブルイベントを停止する必要があります。 再開時に、親divタグでこれらのアイコンのクリックについて知ってはいけません。グーグルページのインターネットエクスプローラでバブリングイベントが機能していないようです。

次のコードは、すべてのブラウザでストップバブリングイベントを許可する:Firefoxので

if (event.cancelBubble) { 
     event.cancelBubble = true; 
} 
if (event.returnValue) { 
     event.returnValue = false; 
} 
if (event.stopPropagation) { 
     event.stopPropagation(); 
} 
if (event.preventDefault) { 
     event.preventDefault(); 
} 

がうまく動作しますが、このコンテキストではIEでない作品(バージョン8以上)。それについてどんな考えですか?

答えて

2
if (event.cancelBubble) { 
     event.cancelBubble = true; 
} 

これは意味をなさない。すでにtrue(ブール値のコンテキストで)と評価されている場合は、trueに設定されます。 if節を取り除く(つまり、常に無条件に設定する)。存在しない値を普通に設定しても害はありません(醜い実装のホストオブジェクトに設定しない限り)

+0

は、同意 –

+0

はそれを取り除くしないでください...機能の有無について検査のように見えますが、これはプロパティです。無条件に設定してください。すべての既知のプラットフォームでevent.cancelBubbleを設定することは安全です。これは、IEが伝播を停止するために使用するものです。 –

+0

それは私が意味したものです – ThiefMaster

0

またはfalseに設定してみてください。イベントが発生した後に来るコードは、イベントがブール値を持つときに、そのイベントを制御する自由があることを意味することがあります。本当なら、イベントは他の関数を実行する可能性があります。 falseと言うとイベントは他の関数を実行しませんが、それはその関数の仕方にのみ依存します。

コーダーは彼の機能/コードを作った。

「バブリングされたイベントを処理するには、コントロールがOnBubbleEventメソッドをオーバーライドする必要があります。」と言いました。

これをまだ読んでいない場合はhttp://msdn.microsoft.com/en-us/library/aa719644(v=vs.71).aspxと言っています

; )

ほんの少しお助けください。

Laterss!

+0

Johnnありがとうございますが、私たちはJavaScriptの文脈で話しています。 –

関連する問題