html mdn - علة مع فايرفوكس-معطل سمة من المدخلات عدم إعادة التعيين عند التحديث




elements mozilla (4)

هذه هي "ميزة" من فايرفوكس الذي يتذكر قيم إدخال النموذج عبر تحديث الصفحة. لإصلاح هذا السلوك ، يمكنك ببساطة تعيين autocomplete="off" على النموذج الذي يحتوي على المدخلات ، أو فقط مباشرة إلى الإدخال.

يعمل هذا على إيقاف الإكمال التلقائي من العمل ويمنع المستعرض من تذكر حالة حقول الإدخال.

بدلاً من ذلك ، يمكنك فقط "تحديث" عن طريق النقر على CTRL + F5. سيؤدي ذلك إلى إعادة تعيين الصفحة الحالية بالكامل.

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

إذا قمت بإنشاء صفحة ويب أساسية بالمصدر التالي:

<html>
  <head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
  </head>
  <body>
    <div>
      <input id="txtTest" type="text" />
      <input type="button" onclick="$('#txtTest').attr('disabled','disabled');" value="Set Disabled (jQuery)" />
      <input type="button" onclick="document.getElementById('txtTest').disabled = true;" value="Set Disabled (js)" />
      <input type="button" onclick="$('#txtTest').removeAttr('disabled');" value="Remove Disabled" />
    </div>
  </body>
</html>

إذا قمت disable textbox بشكل حيوي وقمت بتحديث الصفحة ، textbox معطلاً بدلاً من إعادة التعطيل إلى حالته الأصلية غير معطلة. لقد جربت ذلك في IE8 و Chrome وتلك تتصرف كما أتوقع ، إعادة تعيين textbox إلى عدم تعطيل عند التحديث.

آخر من المعلومات المثيرة للاهتمام هو أنه لا يزال يفعل الشيء نفسه إذا كان الإدخال عبارة عن checkbox بدلاً من textbox .


للتعامل مع زر الرجوع ، افعل هذا (من here )

    window.addEventListener('pageshow', PageShowHandler, false);
    window.addEventListener('unload', UnloadHandler, false);

    function PageShowHandler() {
        window.addEventListener('unload', UnloadHandler, false);
    }

    function UnloadHandler() {
        //enable button here
        window.removeEventListener('unload', UnloadHandler, false);
    }

كما ذكر من قبل ، تحتاج إلى إضافة autocomplete="off" إلى أزرارك.

في ما يلي مقتطف sh + perl لأتمتة ذلك في حالة <button> s في ملفات / قوالب HTML (ضمن بعض الافتراضات):

find /path/to/html/templates -type f -name '*.html' -exec perl -pi -e \
  's/(?<=<button )(.*?)(?=>)/@{[(index($1,"autocomplete=")!=-1?"$1":"$1 autocomplete=\"off\"")]}/g' \
  {} +

الافتراضات هي:

  • تبدأ علامات <button> الافتتاحية وتنتهي على نفس السطر. إذا لم تكن هذه هي الحالة (أي أنها قد تكون مقسمة على عدة أسطر) ، فيجب أن يساعد استبدال /g مع /gs (يؤدي التعديل إلى s . لمطابقة الخطوط الجديدة أيضًا)

  • HTML صالح (على سبيل المثال ، لا توجد أحرف مضحكة بين < و > ) ولا يوجد أبعاد أكبر من ( > ) داخل علامة الفتح.






html firefox input textbox