0

私たちの gwt アプリでは、いくつかの要素が cms から読み込まれ、「HTML」オブジェクトとしてページに追加されます。今まではこれでうまくいきました。しかし、この HTML ドキュメントの別の部分にジャンプするためのアンカー要素を持つ、より大きな Html-Page が追加されました。このアンカーは次のようになります。

<a href="#Chapter3</a>

問題は、これが gwt の履歴トークンを妨害することです。そのようなトークンをクリックすると、アプリが表示されますが<app address>/#Chapter3、これは有効なトークンではありません - 開始ページにつながります。

では、そのようなページ内リンクを HTML ページに追加するにはどうすればよいでしょうか?

更新 最後に、クリックすると同じドキュメントに<a href="#Chapter3</a>ジャンプするよう<a name="Chapter3</a>にします-通常のhtml動作。

4

3 に答える 3

1

ClickHandler を HTML ウィジェットにアタッチします。

myHTMLWidget.addClickHandler(new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {

        // Stop this event
        event.preventDefault();

        Element e = Element.as(event.getNativeEvent().getEventTarget());
        if (e.getAttribute("href").contains("#")) {
            e.scrollIntoView();
        }
    }
});

必要に応じて、別のスクロール動作を使用できます (たとえば、カーソル位置までスクロールします)。

于 2012-09-22T14:57:32.013 に答える
-1

少し大雑把ですが、HTML コンテンツをiframe(GWT のFrame ) にロードしてみてください。

于 2012-09-20T21:01:42.280 に答える
-2
Anchor link=new Anchor("Print",true);
于 2012-09-20T11:20:16.097 に答える