"فتح كافة الروابط الخارجية في علامة تبويب جديدة" لا يعمل عند تحديد بعض النصوص

  1. تأكد من تحديد خيار فتح جميع الروابط الخارجية في علامة تبويب جديدة في /my/preferences/interface ضمن خيارات الواجهة الأخرى (يبدو أنه الإعداد الافتراضي على أي حال).
  2. ابحث عن أي منشور يحتوي على رابط خارجي - أمثلة عشوائية في meta وفي try.
  3. انقر على أول رابط خارجي تجده في هذا المنشور (يفضل أن يكون نفس الرابط).

يفتح في علامة تبويب جديدة، جيد. :+1:

ولكن:

  1. تأكد من تحديد خيار فتح جميع الروابط الخارجية في علامة تبويب جديدة في /my/preferences/interface ضمن خيارات الواجهة الأخرى (يبدو أنه الإعداد الافتراضي على أي حال).
  2. افتح نفس المنشور كما في الاختبار السابق.
  3. حدد أي نص في هذا المنشور (حرف واحد أو أكثر، كلمة واحدة أو أكثر، أي تحديد سيؤدي الغرض) - سترى زر اقتباس عائم.
  4. انقر على أول رابط خارجي تجده في هذا المنشور.

:no_entry: :see_no_evil: :warning: الآن يفتح الرابط الخارجي في علامة التبويب الحالية، بدلاً من علامة تبويب جديدة. :warning: :see_no_evil: :no_entry:


:information_source: في الواقع، يمكنك ببساطة التجربة مع هذا المنشور هنا:

  1. انقر على هذا الرابط الخارجي - حسنًا، جيد :+1: علامة تبويب جديدة.
  2. حدد هذا النص.
  3. انقر على رابط الخطوة 1 الخارجي، مرة أخرى - سيء :no_entry: علامة تبويب حالية.
4 إعجابات

أستطيع التأكيد. لست متأكدًا تمامًا من أن الأمر يستحق الإصلاح، حيث يبدو أنه حالة هامشية، حيث يطلب المستخدم المتاعب.

إعجاب واحد (1)

لأنك تعتقد أنه قد يكون من الصعب إصلاحه؟

غالبًا ما أنقر. غالبًا ما أختار النص.
لذلك يزعجني كثيرًا.

لقد ذكرت هذه المشكلة منذ فترة طويلة ولكنني لم أشرحها بهذه المرة جيدًا. :wink:

هذا مزعج.

إذا لم تكن لديك المهارات لتقديم طلب سحب (لا أعتقد أن لدي)، فإن استخدام النقر بالتحكم لفتح في علامة تبويب جديدة سيعمل، وليس من الصعب أتمتته، وسيحل المشكلة في كل موقع، حتى تلك التي لا تفتح الروابط في علامات تبويب جديدة.

إعجاب واحد (1)

سأستخدم Ctrl+click ولكن لدينا هذا الخيار الرائع، المسمى فتح جميع الروابط الخارجية في علامة تبويب جديدة.

ولكن ما تفعله هذه الميزة في الواقع هو فتح روابط خارجية عشوائية في علامة تبويب جديدة.

لقد استغرقت شهورًا، إن لم يكن سنوات، لتحديد مخطط إعادة إنتاج.
لقد شعرت بالعشوائية الشديدة بالنسبة لي.

ربما يجب إزالة هذا الخيار، لسلوك متسق؟

أتذكر أنني حاولت إعداد بيئة تطوير Discourse لمشكلة CSS بسيطة في طلب سحب.
ولكن، إذا كنت أتذكر بشكل صحيح، فقد استسلمت لأن جهازي كان قديمًا جدًا ولم أتمكن من تثبيت أو تشغيل جميع المتطلبات.

إعجاب واحد (1)

لقد عثرت على محاولتي السابقة الفاشلة لتثبيت بيئة تطوير Discourse. كان جهاز الكمبيوتر الشخصي الذي يعمل بنظام Linux قديمًا جدًا وكان جهاز الكمبيوتر المحمول الاحترافي الذي يعمل بنظام Windows لا يحتوي على تقنية hyper threading مفعلة.

يبدو أن جهاز الكمبيوتر المحمول الاحترافي الجديد الخاص بي يدعم الآن تقنية hyper threading، لذا سأرى ما إذا كان بإمكاني اتباع التعليمات الجديدة، دون حقوق المسؤول.

  • wmic CPU Get NumberOfCores,NumberOfLogicalProcessors يُظهر عددًا أكبر من الأنوية المنطقية مقارنة بالأنوية الفعلية.

مرحباً،

أعتقد أنه يمكن إصلاحه باستخدام CSS.

.cooked a {
  @include user-select(text);
}

آمل أن يساعد هذا، لم أختبره حقًا بعد ولكنه يبدو أنه يعمل بشكل جيد. :slightly_smiling_face:

تعديل: يجب إضافة user-select: text إلى الرابط لأنه ليس فقط النص المحدد .cooked يؤثر عليه بل كل نص محدد على الموقع. لقد قمت بتغيير الكود.

6 إعجابات

هذا يبدو سحريًا بالنسبة لي. أود أن أعرف كيف يعمل، هل يمكنك شرح هذه الخدعة؟ :hugs:

إعجابَين (2)

تحري رائع يا دون، هل ترغب في تقديم طلب سحب؟

6 إعجابات

شكراً سام، كنت فقط أختبره عن كثب قبل التقديم ويبدو أن هذا ليس كافيًا للأسف. هذا الحل يعمل فقط مع كروم.

5 إعجابات

إليك جزء الكود الذي يسبب الخطأ (من app/assets/javascripts/discourse/app/lib/click-track.js)

    // Cancel click if triggered as part of selection.
    const selection = window.getSelection();
    if (selection.type === "Range" || selection.rangeCount > 0) {
      if (selectedText() !== "") {
        return true;
      }
    }

إزالة هذا الكود يحل المشكلة ولا يبدو أنه يكسر الاختبارات (لدي بعض الاختبارات الفاشلة قبل وبعد التغيير لسبب ما ولكن لا توجد اختبارات جديدة على ما يبدو).
لذا أتساءل ما إذا كان هذا الكود يقوم بأي شيء مفيد لأنه بالتأكيد لا يفعل ما يقول إنه يفعله، وإلا فإن مُبلّغ الخطأ لن يتبع أي رابط عند “التحديد + النقر” ولكن هذه ليست شكواه.
هل يمكن لأحد أن يشارك ما يفترض أن يحققه هذا الكود؟

إعجاب واحد (1)

ربما تم إنشاؤه لمنع فتح الروابط في علامات تبويب جديدة عند مجرد تحديد بعض النصوص للاقتباس أو النسخ؟

عندما يتم تعطيل الكود الذي وجدته، وعندما يكون خيار “فتح جميع الروابط الخارجية في علامة تبويب جديدة” محددًا،

هل يمكنك محاولة تحديد (اضغط بزر الماوس، اسحب، أفلت بزر الماوس) بعض النصوص التي تتضمن روابط لمعرفة ما إذا كان أي منها لا يتم فتحه؟

جرب بتحديد يحيط بالروابط، وجرب أيضًا بتحديد ينتهي في منتصف رابط، ربما.

يجب أن يؤدي التحديد دائمًا إلى مجرد تحديد، وليس فتح الروابط.

نعم، تعمل هذه التحديدات كما هو متوقع: دون اتباع الروابط أو فتحها في علامات تبويب جديدة.

إعجاب واحد (1)

أتذكر بشكل غامض أنه كان هناك حل بديل لمتصفح معين، ربما جرب في سفاري/فايرفوكس/كروم مع تحديد لمعرفة ما إذا كان أي منها يؤدي إلى تفعيله؟

إعجاب واحد (1)

يعمل على فايرفوكس وكروم. كيف يمكنني تجربة سفاري على أوبونتو؟

إعجاب واحد (1)

هل يمكن الوصول إلى خادم التطوير الخاص بك عبر شبكة الواي فاي الخاصة بك حتى تتمكن أيضًا من الاختبار باستخدام هاتفك الذكي؟

ربما تؤدي أحداث سحب الإصبع على شاشة اللمس إلى فتح الروابط.

يمكنك إضافة متصفح الهاتف الذكي هذا (فايرفوكس أو كروميوم أو سفاري) إلى قائمة المتصفحات التي تختبرها. :smiling_face_with_sunglasses:

وبالمناسبة، شكرًا جزيلاً لك على عملك على هذه المشكلة!!

لقد وجدت هذا السبب لرمز الإلغاء هذا، على ما يبدو:

منع النقر إذا اختار المستخدم محتوى في موضوع و أفلت الماوس فوق رابط.

https://meta.discourse.org/t/selecting-a-link-results-in-it-being-opened/14846

[موضوع محذوف]

تعليق مثير للاهتمام:

ليس لدي وصول إلا إلى نظام ويندوز للاختبار.

يمكن اختبار هذا الإصلاح بسهولة حيث يمكن لصق الملف بالكامل في وحدة التحكم.

@sam هل تعرف الملف الذي يجب أن نلصقه في وحدة التحكم بعد تحميل صفحة موضوع؟
@Aleksey_Bogdanov هل يمكنك تقديم هذا الملف ويمكنني لصقه في وحدات تحكم متصفح Vivaldi و Firefox و Android 9 Kiwi على نظام ويندوز الخاص بي، ويمكنك لصقه في متصفحات Safari على نظامي iOS و Mac OS.

لا أعتقد أن الأمر يعمل بهذه الطريقة بعد الآن.

إعجاب واحد (1)

لا توجد مشكلة في Chrome و Firefox على Android على الرغم من أنني أواجه صعوبة في التحديد في Firefox بحرية.

إعجاب واحد (1)

كان الأمر نفسه قبل تغييرك، أليس كذلك؟