سؤال

أنا لدي مشكلة مع عبر متصفح الأحداث المحلية مقابل رد المناسبات.

لدي HTML رابط "إضغط هنا" مع معين href="".على dom:loaded أرفق وظيفة هذا الرابط (القيام اياكس الأشياء).

شفرة جافا سكريبت يتم تحميلها في نهاية الصفحة لمتابعة YSlow Recommandation.

المسألة:

إذا قمت بتحميل هذه الصفحة بسرعة حقا (الضغط على F5) ثم انقر على الرابط ثم

  • على alert() لا يسمى
  • الرابط تبع (إعادة تحميل الصفحة)

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

Demo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
  </head>
  <body>

    <a href="#toolate" id="action">Click Me</a>

    <!-- According to YSlow Recommandation load at the bottom -->
    <script src="../js/lib/prototype.js" type="text/javascript" language="JavaScript"></script>
    <script>
      /* <![CDATA[ */
      document.observe('dom:loaded', function() { 
        $('action').observe('click', function(event){ alert("click"); Event.stop(event); });
      });
      /* ]]> */
    </script>
  </body>
</html>

بدوره حولها:

بدوره حولها إلى إضافة onClick="return false;":

<a href="#toolate" id="action" onClick="return false;">Click Me</a>

يعمل على التخلف ولكن ليس سريعا فوق.و أنا لا أحب هذا النوع من يستدير لأن هدفي هو إزالة onclick على كل <a href="">

مع أطيب التحيات

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

المحلول 2

لقد أجرينا العديد من الاختبارات على نظام إدارة المحتوى (CMS) الخاص بنا على العديد من المتصفحات.

الترتيب حسب السرعة:

  1. لا يمكن تنفيذ JavaScript قبل نقرة سريعة جدًا
  2. يعمل onclick="return false" بشكل جيد في معظم الحالات
  3. JavaScript يقوم بـ 2.) onLoad بطيء جدًا ولكنه قد يكون كافيًا
  4. يؤدي استخدام DIV كدرع إلى ظهور مشكلات أخرى وهو ليس خيارًا جيدًا

نصائح أخرى

هل يمكن أن ننظر إلى هذا:

مسج لديه القليل مفيد وظيفة تطلق جافا سكريبت الخاصة بك في أقرب وقت طراز كائن المستند جاهز... والذي يحدث قبل الصفحة الانتهاء من التحميل.

$(document).ready(function(){   //
 Your code here... 
});

عبر

يمكنك أيضا وضع كبيرا تعطيل div أمام كل شيء بينما يتم تحميل الصفحة أن تمنع النقر, ولكن لا أنصح بذلك.

لست متأكدا إذا كنت حصلت على السؤال حق, اسمحوا لي أن أعرف إذا أنا لم

يبدو أن لديك أشياء جميلة في اليد ، وكل ما كنت تبحث القيام به هو إنشاء بعض الروابط التي لا لا شيء في المناطق حيث تدهور رشيقة غير ممكن.

في هذه الحالات لا تشير إلى وجود صلة مع الشكل التالي:

<a href="javascript:void(0);">Linktext</a>

هذا الرابط ينبغي أن وظيفيا لا تفعل شيئا على الاطلاق مع جافا سكريبت تمكين أو تعطيل.

ملاحظات هامة

  1. الرقم صفر في الفراغ ضروري.Internet Explorer سوف يشكو خلاف ذلك.
  2. استخدام "javascript:void(0);" بشدة من قبل مايكروسوفت بسبب أشياء غريبة يمكن أن يحدث.لتجنب معظم الحشرات لا التفاف أي شيء ولكن النص في الفراغ(0) وصلات.
  3. قبل اتخاذ قرار تأكد من أن تنظر بعناية إذا مضيفا "javascript:void(0);" هو حقا حلا أفضل من إضافة onclick التي تقوم بإرجاع false.

على إزالة السمة href:

إزالة السمة href من وصلة صالحة XHTML.على الرغم من كونها صالحة XHTML, الرابط الخاص بك سوف يفقد الارتباط التلقائي التصميم.لا مزيد من التأكيد ، لا أكثر الألوان لا أكثر تحوم و لا تغيير اللون التلقائي إذا كان الرابط هو زارها.

لا يمكنك إصلاح عدم وجود أنماط CSS إما بسبب متقطعا دعم :تحوم في Internet Explorer.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top