أماكن/أنشطة GWT - ما الذي يجب استخدامه للملاحة؟
-
27-10-2019 - |
سؤال
لدي تطبيق ويب GWT للأماكن/الأنشطة.أنا أستعمل Anchor
'س click
حدث لنقل المستخدم إلى "مكان" جديد، لذلك لا توجد طريقة يمكن للمستخدم من خلالها فتح أي "رابط" في نافذة أو علامة تبويب جديدة.السؤال هو كيف أجعل كل هذه الروابط حقيقية؟
المحلول
ربما بدلا من استخدام Anchor
والاستماع إلى ClickEvent
يستخدم Hyperlink
مع ال targetHistoryToken
اضبط على اسم المكان.
على سبيل المثال
<g:Hyperlink text="Home" targetHistoryToken="home" />
نصائح أخرى
أثناء استخدام أ Hyperlink
(أو InlineHyperlink
) يعمل، أفضل استخدام a ClickHandler
على Anchor
, ، لأنه إذا قام أي نشاط بإرجاع قيمة غير فارغة في mayStop
لن يتغير عنوان URL بعد (بينما مع ملف Hyperlink
, ، سيكون كذلك، حتى لو اختار المستخدم إلغاء التنقل).
لتحديد الهدف (href
) على ال Anchor
, ، ببساطة استخدم الخاص بك PlaceHistoryMapper
.وللتعامل مع الضغط على ctrl+click والنقر الأوسط والنقر بزر الماوس الأيمن بشكل صحيح، أعد استخدام HyperlinkImpl
:
Anchor anchor = new Anchor("text", "#" + placeHistoryMapper.getToken(targetPlace));
anchor.addClickHandler(new ClickHandler() {
private static final HyperlinkImpl IMPL = GWT.create(HyperlinkImpl.class);
@Override
public void onClick(ClickEvent event) {
if (IMPL.handleAsClick(event)) {
placeController.goTo(targetPlace);
event.preventDefault();
}
}
});