كيف يمكنني منع فايرفوكس تظهر شريط جانبي امتدائي عند بدء التشغيل؟
-
18-09-2019 - |
سؤال
إذا تم ترك الشريط الجانبي الخاص بي عند إغلاق Firefox، فسيتم عرضه مرة أخرى عند بدء التشغيل. أجد هذا غير مرغوبا غير مرغوب فيه وستظل مخفيا حتى فتح يدويا. هل من الممكن إيقاف هذا يحدث؟
حاولت إضافة هذا القليل من التعليمات البرمجية إلى وظيفة تهيئة الملحق الخاصة بي لإغلاق الشريط الجانبي إذا ظهوره:
toggleSidebar("mySidebar", false);
هذا لا يبدو أن يعمل أيضا بشكل متسق للغاية - يبدو أنه يتجاهل المعلمة الخاطئة وتبديل الشريط الجانبي! عندما يعمل بشكل صحيح، فإنه يحتوي على آثار جانبية غير مرغوب فيها - أحتاج إلى فتح وإغلاق الشريط الجانبي مرة واحدة قبل أن تظهر أي محتوى. غريب، لكنني أفترض أن جزءا من وجهة نظر فايرفوكس فيما يتعلق بوضوح الشريط الجانبي قد خرج من المزامنة.
يبدو أن الآخرين يواجهون نفس المشكلة على منتديات ميزيلازين.
المحلول
يمكنك أيضا إضافة مراقب إلى عملية إيقاف التشغيل، وإغلاق الشريط الجانبي هناك. كان لدي نفس المشكلة مثلك، وانتهى الأمر بالذهاب إلى هذا الطريق، حيث أن لدينا بالفعل مراقب إعداد للقيام ببعض التنظيف الآخر.
يبدو الكود مثل هذا، أثناء تهيئة التراكب الرئيسي:
var current = this;
var quitObserver = {
QueryInterface: function(aIID) {
if (aIID.equals(Components.interfaces.nsIObserver) || aIID.equals(Components.interfaces.nsISupports)) {
return this;
}
throw Components.results.NS_NOINTERFACE;
},
observe: function(aSubject,aTopic,aData ) {
var mainWindow = current._windowMediator.getMostRecentWindow("navigator:browser");
var sidebar = mainWindow.document.getElementById("sidebar");
if (sidebar.contentWindow.location.href == "chrome://daisy/content/sidebar.xul") {
mainWindow.toggleSidebar('openDaisySidebar', false);
}
}
};
setTimeout(function() {
var mainWindow = current._windowMediator.getMostRecentWindow("navigator:browser");
var observerService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
observerService.addObserver(quitObserver,"quit-application-granted",false);
},2000);
امل ان يساعد.
نصائح أخرى
toggleSidebar("mySidebar", false);
لا يعمل لأن المعنى الثاني تعني "ملقط" ليس علامة مفتوحة / وثيقة.
كما أجاب أحدهم على Mozillazine لأن فايرفوكس يحافظ على دولة جانبية عبر جلسات. هل أنت متأكد من أنك بحاجة إلى أن تكون مختلفا هنا؟
إليك رمز Firefox الذي يفتح الشريط الجانبي عند بدء التشغيل:
http://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.js#999.(قد يتم إيقاف تشغيل الأسطر عند الوصول إلى هذا لاحقا - إنها الرابط إلى أحدث إصدار من المصدر)
1000 let box = document.getElementById("sidebar-box");
1001 if (box.hasAttribute("sidebarcommand")) {
وهنا أين sidebarcommand
تستمر السمة:
http://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.js#1422.
1373 function BrowserShutdown()
...
1426 if (!enumerator.hasMoreElements()) {
1427 document.persist("sidebar-box", "sidebarcommand");
أقترح محاولة هذا:
إذا كانت النافذة الحالية هي آخر واحد وخط الشريط الجانبي مفتوحا،
- إما إغلاق الشريط الجانبي من قبل
BrowserShutdown
(إنه مسجل كمعالج تفريغ للنافذة) - خداع BrowserShutdown للاستمرار في السمات المناسبة (المقابلة "Sidebar غير مفتوحة" حالة)
- أو بعد BrowserShutdown الكتابة فوق القيم المستمرة مع تلك التي تحتاج إليها.
إذا توصلت إلى حل العمل، فيرجى مشاركتها مع الآخرين، ويفضل ذلك على MDC: https:/developer.mozilla.org/en/code_snippets/sidaybar.
انظر الإجابات في كيفية إغلاق الشريط الجانبي في فايرفوكس لكيفية إغلاقه عند الإغلاق، وفي حالة إيقاف التشغيل.