لماذا تم تطبيق رمز الافتراضي ريبر عمل المتصفح بعد رمز مخصص?
-
13-12-2019 - |
سؤال
لدي مشكلة غريبة مع رمز عمل المتصفح في كروم.هناك رمز افتراضي لعمل المتصفح المحدد في البيان.يتم عرض الرمز بشكل صحيح.ثم في صفحة الخلفية ، في ظل بعض الظروف ، أدعو:
chrome.browserAction.setIcon({path:"green_32.png", tabId:request.tabId});
يومض هذا الرمز للحظة ، ثم يتغير مرة أخرى إلى الرمز الافتراضي.تم تمرير علامة التبويب النشطة ومعرفها إلى setIcon
تبقى هي نفسها خلال كل عملية.
هل يمكن لأي شخص أن يقترح فكرة عن سبب حدوث ذلك?
المحلول
السبب في إعادة تعيين الرمز إلى الحالة الافتراضية في كل مرة هو أنني اتصلت setIcon
قبل تنتهي علامة التبويب من التحميل وتحصل على "كاملة" الدولة.
أعتقد أنه يجب أن يكون هناك بعض المعلومات حول هذا في الوثائق حول علامات التبويب أو على إجراءات المتصفح, ، لكنني لم أجده:يتم تطبيق الرمز الافتراضي بالفعل-حسب التصميم-على صفحة معينة بعد انتهاء التحميل.انتقلت المكالمة setIcon
في tabs.onUpdated
معالج ، والآن رمز مخصص لا يزال قائما.
هذا يتناقض مع فهمي السابق أن رمز إجراء المتصفح يتم تعيينه على أساس كل علامة تبويب ، بغض النظر عن صفحة تم تحميلها في علامة التبويب وحالتها.
تضمين التغريدة يرجى تقديم امتداد بسيط لاختبار الحالة (انظر إلى التعليقات).لقد غيرت لها الخلفية.شبيبة سيناريو لإظهار هذا السلوك:
chrome.browserAction.onClicked.addListener(function(tab)
{
chrome.browserAction.setIcon({path: 'gfx/icon2.png', tabId: tab.id});
});
لإعادة إنتاج هذا السلوك ، في أي علامة تبويب ، اضغط على رمز إجراء المتصفح لتغييره.ثم قم بتحديث الصفحة.ونتيجة لذلك ، يتم إعادة تعيين رمز إجراء المتصفح إلى الوضع الافتراضي.
إذا تم شرح هذا السلوك في بعض الوثائق ، من فضلك ، اكتب هذا في التعليقات ، وسأقوم بتحديث الإجابة.مما قرأته حتى الآن ، كنت مقتنعا بأن الرمز الافتراضي قد تم تعيينه لعلامة تبويب جديدة في وقت إنشائه ، ومن ثم فإن أي تغييرات عليه تخضع فقط لسيطرة الامتداد.