سؤال كيف تحجب مواقع الويب اختيار النص وكيف أقوم بإلغاء حظر ذلك؟


هناك موقع على شبكة الانترنت (مثال) أن كتل بطريقة ما تحديد النص. كما أنها كتل السيطرة+ا لتحديد كل شيء ، لا يوجد أيضًا "نسخ" في القائمة المنبثقة.

ما جربت:

تستخدم بعض المواقع جافا سكريبت لحظر التحديد. لذا فقد عطّلت جميع مصادر جافا سكريبت في أداة add-script في Firefox. لقد حاولت استخدام نفس الموقع في Google Chrome باستخدام الوظيفة الإضافية Script Safe. تأكد من حظر كل شيء ، لا يزال لا يمكنه تحديد النص. يظل Mousepointer سهمًا وليس مؤشر نص أيضًا على الموقع بأكمله.

مستخدم about:config لتعطيل JavaScript تمامًا في Firefox. لا يوجد أي تأثير.

قرأت أن بعض المواقع تستخدم DIVs مع عرض النمط: حظر لذلك استخدمت "الفحص" لفحص أنماط الموقع. لا يوجد ذكر واحد لـ "حظر" على موقع الويب بأكمله ، وليس في CSS المضمّن ولا في نمط الكائنات = - السمات.

النص ليس صورة أو فلاش أو بعض قماش HTML5 إلخ. كل شيء داخل علامات DIV و P ولكن لم يتم العثور على أي نمط قد يحظر اختيار النص.

كيف يمكن لموقع الويب منع أي اختيار للنص؟ ناهيك عن السبب في أن المتصفحات تدعم مثل هذه السلوكيات على الإطلاق. أريد فقط استخدام كلمة أو جملة محددة وأريد البحث في google عن ذلك باستخدام النقر بزر الماوس الأيمن. إنه أمر مزعج للغاية عندما يقوم موقع ويب بمثل هذه الأمور ويجبرني على كتابة المصطلحات الفنية والأسماء في جوجل باليد. إنه يزعج سير العمل الخاص بي.


70
2018-01-05 09:30


الأصل


"كيف تحظر مواقع الويب وضع علامات على النص" - وضعوا style.userSelect إلى none.
@ Xen2050 في الغالب لا يهمني نسخ النص. أنا فقط أحب القدرة على تمييز العبارات والمصطلحات والبحث عنها على Google بنقرة واحدة على الماوس (كلمة doubleclick ، ​​rightclick "بحث Google ..."). يمكنني الدخول إلى المصدر (إذا كان مصدرًا نظيفًا على الإطلاق) والبحث عن الكلمة ، ونسخها ، ولصقها في Google ، ولكن أيضًا ... كما قيل ، هذا مجرد إزعاج. بعض 1 الذين يريدون نسخ نص موقعك على شبكة الإنترنت يمكن أن يفعلوا ذلك بطريقة أو بأخرى ولكن يحصل عرقلة شخص يريد فقط سير عمل مريح. - bxyify
هل يمكننا أن نتوقف لحظة ونتعاطف مع جميع مطوري الويب الوهميين الذين يعتقدون أن هذا إجراء أمني جيد؟ - MCMastery
لا أعرف مدى شيوع هذه الممارسة بعد الآن ، لكني أتذكر أني مررت عبر بضع أمثلة من صورة أحادية البكسل تم تمديدها لتغطية الصفحة بأكملها لمنع نسخ النص وما إلى ذلك. وتغيير مؤشر الماوس إلى قوس قزح لامع يونيكورن النجوم جنبا إلى جنب مع النص وامض في كل مكان ... - RIanGillis
MCMastery أو أسوأ من ذلك ، المطورين الذين يعرفون أنه أمر فظيع ولكن يقال عليهم أن يفعلوا ذلك على أي حال. في معظم الأحيان ، يشعرون بالقلق من سرقة المحتوى. ثم لديك مواقع مثل SO يتم الحصول عليها كشط / سرقة من كل وقت ... ولكن قابلة للتطبيق تجاريًا. اتضح أن إبعاد قاعدة المستخدم الخاصة بك أمر سيء للأعمال. من كان يظن؟! - corsiKa


الأجوبة:


https://www.angst-panik-hilfe.de/angst-panik.css عروض:

body{-webkit-user-select:none;-moz-user-select:-moz-none;
-ms-user-select:none;user-select:none}

لذلك ، ينطبق هذا التأثير على علامة BODY بالكامل.

وثائق على هذا CSS: موقع مطور Mozilla: حدد المستخدم.

ربما يمكنك تجاوز هذا عن طريق إزالة النمط في أدوات المطور (اضغط على F12 في Firefox أو Chrome) - قد تتمكن حتى من إنشاء تطبيق JavaScript صغير ، بعد استثمار الوقت في إعداده ، يمكنه إزالة هذا النمط بجهد أقل فوريًا من جانبك (والذي قد يكون موفرًا زمنيًا إذا كنت تخطط لزيارة الموقع عدة مرات).

أود أيضًا أن أضيف هذه الملاحظة: قد لا تكون هذه هي الطريقة الوحيدة للحصول على بعض من هذا التأثير على الأقل. طريقة أخرى ممكنة يمكن أن تكون غير مرئية DIV غطي ال DIV يحتوي على النص. بهذه الطريقة ، لن يتحول مؤشر الماوس إلى الحزمة I-beam (مؤشر النص) لأن المؤشر سيعتمد على محتوى الجزء العلوي DIV. (السيطرة-ا ربما تغطي هذا النص ، على الرغم من.)

إنه أمر مزعج للغاية عندما يقوم موقع ويب بمثل هذه الأمور ويجبرني على كتابة المصطلحات الفنية والأسماء إلى google باليد. إنه يزعج سير العمل الخاص بي.

آمين! عند رؤية هذا ، أشعر بخيبة أمل لوجود أسلوب CSS يتم تنفيذه بواسطة المتصفحات الرئيسية. مثل هذه الأشياء مزعجة للغاية ، في الواقع!


79
2018-01-05 10:00



ال user-select نمط CSS مفيد جدًا عند تطبيقه بمسؤولية. على سبيل المثال ، إذا كنت تريد (خاصةً الأقدم) من المستخدمين على شاشة تعمل باللمس بالنقر فوق الأزرار القريبة من نص التسمية ، فأنت لا ترغب في وضع علامة على نص التسمية بدلاً من النقر فوق الزر. - phihag
ماذا تقصد "افتراضيا"؟ يتم تمكين هذا الإعداد فقط إذا كان موقع الويب يتيح ذلك على وجه التحديد ، ولا يبدو ذلك "افتراضيًا" بالنسبة لي. ستكون هناك دائمًا ميزات يمكن إساءة استخدامها من قِبل مصممي الويب السيئين ، وليس هناك الكثير الذي يمكنك فعله لمنع ذلك دون التأثير سلبًا على أولئك الذين لديهم سبب مشروع لاستخدام هذه الميزات ... - Sean Burton
SeanT مرة أخرى ، إذا كان المتصفح موجودًا لخدمة الشخص الذي يبحث في صفحات الويب ، فإن مهمته هي الاستجابة لما يرسله خادم الويب ، على الرغم من أن المستخدم يخبره بذلك. إذا أخبره المستخدم بكتم الصفحة ، أو عدم السماح بالنوافذ المنبثقة ، أو نسخ النص ، فيجب على المتصفح إجراء ذلك. - Acccumulation
لن يقوم أي مستخدم بالمتصفح بالذهاب إلى عناء تكوين المتصفح الخاص به لتمكين ميزة مثل هذا بشكل صريح ، إذا لم يكن ممكّنًا بشكل افتراضي ، فهذا يعني أنه بلا جدوى ، وقد لا يتم تنفيذه على الإطلاق. وإذا كنت تقترح ذلك كل يجب تمكين الميزة بشكل صريح من قبل المستخدم ، ثم أين ترسم الخط؟ هل يجب على المستخدم تمكين ميزة "الصور" قبل أن يتمكن موقع الويب من عرض الصور؟ هل يجب أن تكون جميع المتصفحات بشكل أساسي Lynx بشكل افتراضي حتى يقوم المستخدم بتمكين كافة الميزات التي يريدها؟ - Sean Burton
Acccumulation يتم استخدام ميزة select: select: none في كل مكان للحفاظ على نمط صفحة الويب ، مثل إيقاف الخلفية الزرقاء القبيحة عند تحديد خيار من القوائم المنسدلة. أنت لا تلاحظ فقط لأنه يتم تنفيذه بشكل صحيح. تكمن المشكلة هنا في أنه تم تنفيذه بطريقة تقييدية للمستخدم ، ولا يوجد لدى المستعرض طريقة للتمييز بين الاثنين. لذلك ، إلقاء اللوم على ديف :) - Sean T


افتح أدوات المطور (F12) ، وقم بالتغيير إلى علامة التبويب Elements ، وألغِ تحديد قواعد CSS التالية ضمن الجسم:

  • اختيار المستخدم: لا شيء ؛
  • webkit-user-select: لا يوجد؛

Demo Image


10
2018-01-05 16:44





كما سبق ذكره ، الإعداد user-select: none في CSS للصفحة هو ما يعطل اختيار النص على الصفحة. إن أسهل طريقة لإزالة كتلة تحديد النص هذه هي من خلال برنامج نصي مستخدم مثل ما يلي يلغي الإعداد:

// ==UserScript==
// @name         Force Select
// @version      1.0
// @description  Stop sites from disabling selection of text
// @author       You
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  let style = document.createElement('style');
  style.innerHTML = '*{ user-select: auto !important; }';

  document.body.appendChild(style);
})();

ملحوظة: سيتم تطبيق هذا على كل صفحة إذا تم تمكينه ، وهو ما قد لا يكون مرغوبًا في جميع المواقف.

يمكن تثبيت البرنامج النصي وتبديله بسهولة / إيقافه باستخدام مدير برنامج نصي مستخدم مثل Violentmonkey، Tampermonkeyأو الشحوم قرد.


10
2018-01-05 16:32



جدير بالذكر أنك قد تحتاج إلى امتداد مثل "greasemonkey" لإضافة نصوص المستخدم. - Stilez
This will apply to every page if left enabled, which might not be desirable in all situations. هل يمكن ألا تقوم فقط بتعميم الدالة في جملة if التي تقوم بتنفيذ البرنامج النصي فقط إذا كان عنوان URL يتطابق مع موقع معين أو مجموعة مواقع معينة؟ - Hashim
Hashim ليس هذا ضروريًا ؛ يمكنك تحديد الصفحات التي تنطبق عليها مع واحد أو أكثر @match البيانات ، ولكن ذلك يتطلب تعديل النص البرمجي عندما تريد تطبيقه على صفحة معينة ، ما لم تزور موقعًا معينًا أو مجموعة معينة من المواقع التي تريد تعديلها دائمًا. للبرنامج النصي المثال لقد جعلها عامة باستخدام *://*/* كعنوان URL الذي يطابق ، لذلك سيتم تطبيقه في كل مكان. يمكن تشغيله وإيقافه من قائمة مدير البرنامج النصي للمستخدم. - Herohtar


باستخدام Firefox ، توجد طريقة سهلة بالفعل:

View > Page Style > No Style

في المانيا:

Ansich > Webseiten-Stil > Kein Stil

enter image description here

يعمل أيضًا بشكل رائع على تنزيل الصور المضمنة التي تم تعطيل النقر بزر الماوس الأيمن عليها.


7
2018-01-08 09:04



Yeap ، يعمل أيضًا على IE11. - Marco Demaio


يمكنك ضرب السيطرة + P والاستيلاء على ما تحتاجه من معاينة الطباعة.

enter image description here


2
2018-01-09 19:17





انا افضل استخدام "أوامر المفضلة"إلى نصوص المستخدم أو ملحقات المتصفح. جرب استخدام واحد من العديد من bookmarklets لتعطيل CSS والاستيلاء على النص المطلوب

نظرًا لأنه قد يؤدي إلى تعطيل إمكانية قراءة صفحة الويب ، فأنا أفتح الصفحة أحيانًا في علامة تبويب مختلفة (انقر بزر الماوس الأيمن على علامة التبويب ، وحدد تكرار) قبل إزالة التصميم باستخدام التطبيق المختصر

يمكنك أيضا محاولة Google Mobilizer Bookmarklet لعرض نص صفحات الويب فقط


0
2018-01-06 13:19





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

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

بمجرد التثبيت ، انقر فوق الرمز الموجود في شريط الأدوات وحدد "إنشاء نمط جديد". سيعمل تلقائيًا على إنشاء إدخال لموقع الويب الذي تزوره حاليًا. يمكنك بعد ذلك إضافة أي CSS تريد إلى الصفحة. ولكن كن حذراً: قد لا تكون بعض الأنماط متجاوزة (خاصة إذا كانت مكتوبة على العنصر نفسه ، بدلاً من فئة CSS).

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

@-moz-document domain("www.angst-panik-hilfe.de") {
  body {
    -webkit-user-select: auto !important;
    -moz-user-select: inherit  !important;
    -ms-user-select: inherit  !important;
    user-select: auto  !important;
  }
}

0
2018-01-08 09:56



إضافة webkit و ms بادئات لشيء سوف يعمل فقط على فايرفوكس هو قليلا ... زائدة عن الحاجة. - Stephan Bijzitter
StephanBijzitter صحيح ، لقد قمت بالكتابة فوق جميع الأنماط المتعلقة بتحديد المستخدم بالفعل على الصفحة. ولكن مرة أخرى ، هذا يعني أن شخصًا لا يستخدم الكروم ولكن بامتداد مماثل يمكن أن ينسخ بسهولة هذا الصف ويحصل على نفس المنفعة بدون عمل - ولا يضر بالحل. - Obsidian Phoenix


قد تكون العديد من الحلول المقترحة خاصة بالمتصفح ، لذا يجدر اقتراح بعض البدائل:

  1. استخدم broswer الذي يحترمك أكثر.

    ا. يحتوي Emacs على متصفحات emacs-w3m و eww سيسمح دائمًا لأحد بتحديد النص.

    ب. المتصفحات الأخرى القائمة على النصوص مثل lynx، elinksو w3m، قد تسمح لأحد بتحديد النص ، ولكن حتى لو لم يكن كذلك ، إذا كان تشغيل هذه البرامج في نافذة طرفية ، يمكن للمرء تحديد النص باستخدام الماوس. وإذا كان أحد يستخدم تلك البرامج من الداخل tmuxيمكن للمرء استخدامها tmuxالقدرة على نسخ النص حتى بدون الماوس.

  2. استخدم أداة سطر الأوامر لتنزيل عنوان url بأكمله بتنسيق نصي يمكن قراءته.

    ا. w3m -dump [your_url] > your_file.txt

    ب. lynx -dump [your_url] > your_file.txt. أنا عادة ما يفضلون هذا لأنه يشير إلى ارتباطات تشعبية حواشي قابلة للقراءة!


0
2018-01-11 23:44