سؤال

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

يقوم Iframe بتحميل صفحة aspx عادية لذا فكرت في إجراء $(document).ready(..focus);
لقد وضعت هذا البرنامج النصي في كود IFrame

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

هل يمكن لأي أحد أن يساعدني في ضبط التركيز؟أدناه هو رمز الاتصال الخاص بي..

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
هل كانت مفيدة؟

المحلول

يعرض سميكبوكس حاوية إطار iframe عن طريق استدعاء أسلوب في حدث التحميل لعنصر iframe.نظرًا لأن إطار iframe مخفي في الصفحة الرئيسية حتى بعد تحميل محتوى iframe، لا يمكنك ضبط التركيز ببساطة باستخدام $(document).ready(..focus);.أسهل طريقة وجدتها للتغلب على ذلك هي استخدام setTimeout لتأخير استدعاء الوظيفة التي تحدد التركيز حتى بعد عرض إطار iframe:

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

ملحوظة:قد يتعين عليك ضبط قيمة المللي ثانية التي تمررها إلى setTimeout.

نصائح أخرى

من docs.jquery.com:

يطلق حدث التركيز لكل عنصر مطابق.

يؤدي هذا إلى تنفيذ كافة الوظائف المرتبطة بحدث التركيز.لاحظ أن هذا لا ينفذ طريقة التركيز للعناصر الأساسية.

وهذا يعني أن الكود الخاص بك يجب أن يكون على الأرجح:$('#input_field').get(0).focus ()

الفرق هو أنك تستخدم في المثال الخاص بي عنصر التركيز الخاص بعنصر DOM، بينما تستخدم في المثال الخاص بك عنصر jQuery.

هذا لا يزال لا يعمل, ، ولكن ربما تكون خطوة في الاتجاه الصحيح.

هتافات،

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