سؤال

لدي تطبيق ويب GWT للأماكن/الأنشطة.أنا أستعمل Anchorclick حدث لنقل المستخدم إلى "مكان" جديد، لذلك لا توجد طريقة يمكن للمستخدم من خلالها فتح أي "رابط" في نافذة أو علامة تبويب جديدة.السؤال هو كيف أجعل كل هذه الروابط حقيقية؟

هل كانت مفيدة؟

المحلول

ربما بدلا من استخدام 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();
      }
   }
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top