لكن في بعض الأحيان نواجه مثل هذه المشكلة ونريد منع الزائرين من استخدام قائمة النقر بزر الماوس الأيمن أو حظر وظائف معينة في قائمة النقر بزر الماوس الأيمن، على سبيل المثال، من أجل حماية محتوى صفحة الويب، لا نريد زوارًا لعرض الكود المصدري لصفحة الويب من خلال قائمة النقر بزر الماوس الأيمن، لا نريد منهم تحديد محتوى الويب أو نسخه أو ما إلى ذلك عن طريق النقر بزر الماوس الأيمن. عند النظر في هذه المشكلة، يقوم العديد من مصممي الويب ببساطة بحظر النقر بزر الماوس الأيمن بدلاً من القيام بذلك، قد نستخدم أيضًا البرامج النصية لتنفيذ قائمة النقر بزر الماوس الأيمن وإضافتها في تحميل المحتوى الخاص بنا إلى قائمة النقر بزر الماوس الأيمن هذه. دعونا نجرب هذه الفكرة الآن.
أول شيء نحتاج إلى مراعاته هو استدعاء دالة من خلال حدث النقر بزر الماوس الأيمن. تُستخدم هذه الوظيفة لعرض محتويات قائمة النقر بزر الماوس الأيمن الجديدة. نحن نعلم أن حدث النقر بزر الماوس الأيمن يتم استدعاؤه من خلال document.oncontextmenu. إذا حددنا document.oncontextmenu = وظيفة معينة، فيمكننا استدعاء قائمة النقر بزر الماوس الأيمن الجديدة. والسؤال الرئيسي هو كيفية التحكم في القائمة من خلال ذلك في الوقت نفسه، يجب إخفاء القائمة من خلال حدث النقر الخاص بالنموذج document.body.onclick (يشير عمومًا إلى النقر بزر الماوس الأيسر). تكمل هذه العملية النافذة المنبثقة وإخفاء قائمة النقر بزر الماوس الأيمن.
أولاً، دعونا نلقي نظرة على رمز البرنامج النصي هذا:
/*التهيئة*/
<script language="JavaScript1.2">
/*إذا كان المتصفح الحالي هو Internet Explorer، فسيُرجع document.all صحيحًا*/
if (document.all && window.print) {
/*حدد نمط العرض لمربع القائمة*/
ie5menu.className = Menuskin;
/*عملية معالجة إعادة توجيه حدث زر الفأرة الأيمن هي البرنامج المخصص showmenuie5*/
document.oncontextmenu = showmenuie5;
/*عملية معالجة إعادة توجيه حدث زر الفأرة الأيسر هي إخفاء البرنامج المخصص*/
document.body.onclick = Hidemenuie5;
}
</script>
بشكل عام، حدث زر الفأرة الأيمن يحدث بعد تحميل الصفحة، لذا لكي لا يؤثر على سرعة تحميل الصفحة، يمكننا وضع هذا الكود في نهاية الصفحة. هذا الرمز بسيط جدًا. تحقق أولاً مما إذا كان متصفح IE. إذا كان الأمر كذلك، فيجب أن يكون التعريف التالي صالحًا. وهذا يعني أنه عندما يتم اكتشاف أن المتصفح الذي يستخدمه العميل هو IE، يتم استدعاء الوظيفة showmenuie5 عندما يقوم المستخدم بإنشاء حدث نقر بزر الماوس الأيمن، ويتم استدعاء وظيفة Hidemenuie5 عندما يقوم المستخدم بإنشاء حدث نقر بزر الماوس الأيسر.
بعد حل المشكلة المذكورة أعلاه، يتعين علينا الآن التفكير في كيفية عرض القائمة وإخفائها من خلال الوظيفة showmenuie5 والوظيفة Hiddenmenuie5. بالطبع، القائمة هنا ليست قائمة حقيقية للنقر بزر الماوس الأيمن، ولكنها عبارة عن div أنشأناه بأنفسنا، ونضع الأشياء التي نريد وضعها في div هذا. قم باستدعاء الوظيفة من خلال أحداث الماوس للتحكم في رؤيتها، مما يحقق نفس تأثير استخدام زر الفأرة الأيمن.