2

顧客のサイトで、古代の誰かが<base>スーパーペアレント タイルの定義にタグを付けましたが、これはまったく奇妙です。それは自分自身を参照しているだけでbasicTileLayout.jsp、タグを出しているとしましょう:

<base href="http://site.com/layout/basicTileLayout.jsp" />

頭の中で。

このサイトは現在、ほとんどが GWT です。とにかく、何らかの奇妙な理由で、Firefox と Firefox のみが、たとえば DOM で次のように GWT によって生成されたリンクをクリックすると、このベース URL に対して ajax 呼び出しを行うことがあります。

<a class="gwt-Anchor" href="javascript:;">Read more</a>

私の最初の考えは、おそらく FF で別の方法で動作するイベント バブリングであり、他のブラウザーで GWT イベント処理によって防止されている間に呼び出された href="" があった可能性があるということでした。しかし、base-tag を削除すると、代わりにアプリのベース コンテキスト パス ("/") への GET が返されたはずですよね? これは起こりません。したがって、この base-tag の存在が FF の呼び出しをトリガーするようです。

私が尋ねている理由は、これが超グローバルなクロム タイルであるため、base タグを削除すると、サイト全体のすべての相対 href が変更されるからです。私はそれをしたくなるが、ちょっと怖いだけだ:)

アップデート:

私はいくつかのGWTグーグルを行い、このIE関連のものを見つけました:

https://code.google.com/p/google-web-toolkit/issues/detail?id=5280

コードを調べたところ、GWT:s Anchor を使用して生成されたリンクだけで発生し、イベント ハンドラーからのイベントで preventDefault を呼び出さないことに気付きました。

デフォルトを防止していないため、呼び出される unloadEvent の base-url に対して Firefox がこの GET を実行する可能性があると推測できます。しかし、存在するベースタグが理解できない場合にのみ、URLへのajax呼び出しがあるのはなぜですか。

更新 2:

click イベントで preventDefault を呼び出してみましたが、これは役に立ちません。base-tag が存在する場合、FF はその URL を取得します。存在しない場合、悪いことは何も起こりません。

どんなポインタでも大歓迎です!

4

1 に答える 1