تأكد من تحديد خيار فتح جميع الروابط الخارجية في علامة تبويب جديدة في /my/preferences/interface ضمن خيارات الواجهة الأخرى (يبدو أنه الإعداد الافتراضي على أي حال).
ابحث عن أي منشور يحتوي على رابط خارجي - أمثلة عشوائية في meta وفي try.
انقر على أول رابط خارجي تجده في هذا المنشور (يفضل أن يكون نفس الرابط).
يفتح في علامة تبويب جديدة، جيد.
ولكن:
تأكد من تحديد خيار فتح جميع الروابط الخارجية في علامة تبويب جديدة في /my/preferences/interface ضمن خيارات الواجهة الأخرى (يبدو أنه الإعداد الافتراضي على أي حال).
افتح نفس المنشور كما في الاختبار السابق.
حدد أي نص في هذا المنشور (حرف واحد أو أكثر، كلمة واحدة أو أكثر، أي تحديد سيؤدي الغرض) - سترى زر اقتباس عائم.
انقر على أول رابط خارجي تجده في هذا المنشور.
الآن يفتح الرابط الخارجي في علامة التبويب الحالية، بدلاً من علامة تبويب جديدة.
في الواقع، يمكنك ببساطة التجربة مع هذا المنشور هنا:
إذا لم تكن لديك المهارات لتقديم طلب سحب (لا أعتقد أن لدي)، فإن استخدام النقر بالتحكم لفتح في علامة تبويب جديدة سيعمل، وليس من الصعب أتمتته، وسيحل المشكلة في كل موقع، حتى تلك التي لا تفتح الروابط في علامات تبويب جديدة.
سأستخدم Ctrl+click ولكن لدينا هذا الخيار الرائع، المسمى فتح جميع الروابط الخارجية في علامة تبويب جديدة.
ولكن ما تفعله هذه الميزة في الواقع هو فتح روابط خارجية عشوائية في علامة تبويب جديدة.
لقد استغرقت شهورًا، إن لم يكن سنوات، لتحديد مخطط إعادة إنتاج.
لقد شعرت بالعشوائية الشديدة بالنسبة لي.
ربما يجب إزالة هذا الخيار، لسلوك متسق؟
أتذكر أنني حاولت إعداد بيئة تطوير Discourse لمشكلة CSS بسيطة في طلب سحب.
ولكن، إذا كنت أتذكر بشكل صحيح، فقد استسلمت لأن جهازي كان قديمًا جدًا ولم أتمكن من تثبيت أو تشغيل جميع المتطلبات.
لقد عثرت على محاولتي السابقة الفاشلة لتثبيت بيئة تطوير Discourse. كان جهاز الكمبيوتر الشخصي الذي يعمل بنظام Linux قديمًا جدًا وكان جهاز الكمبيوتر المحمول الاحترافي الذي يعمل بنظام Windows لا يحتوي على تقنية hyper threading مفعلة.
يبدو أن جهاز الكمبيوتر المحمول الاحترافي الجديد الخاص بي يدعم الآن تقنية hyper threading، لذا سأرى ما إذا كان بإمكاني اتباع التعليمات الجديدة، دون حقوق المسؤول.
wmic CPU Get NumberOfCores,NumberOfLogicalProcessors يُظهر عددًا أكبر من الأنوية المنطقية مقارنة بالأنوية الفعلية.
إليك جزء الكود الذي يسبب الخطأ (من 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;
}
}
إزالة هذا الكود يحل المشكلة ولا يبدو أنه يكسر الاختبارات (لدي بعض الاختبارات الفاشلة قبل وبعد التغيير لسبب ما ولكن لا توجد اختبارات جديدة على ما يبدو).
لذا أتساءل ما إذا كان هذا الكود يقوم بأي شيء مفيد لأنه بالتأكيد لا يفعل ما يقول إنه يفعله، وإلا فإن مُبلّغ الخطأ لن يتبع أي رابط عند “التحديد + النقر” ولكن هذه ليست شكواه.
هل يمكن لأحد أن يشارك ما يفترض أن يحققه هذا الكود؟
يمكن اختبار هذا الإصلاح بسهولة حيث يمكن لصق الملف بالكامل في وحدة التحكم.
@sam هل تعرف الملف الذي يجب أن نلصقه في وحدة التحكم بعد تحميل صفحة موضوع؟ @Aleksey_Bogdanov هل يمكنك تقديم هذا الملف ويمكنني لصقه في وحدات تحكم متصفح Vivaldi و Firefox و Android 9 Kiwi على نظام ويندوز الخاص بي، ويمكنك لصقه في متصفحات Safari على نظامي iOS و Mac OS.