احفظ سجل القائمة المنسدلة في شريط أدوات Firefox

StackOverflow https://stackoverflow.com/questions/120170

  •  02-07-2019
  •  | 
  •  

سؤال

أقوم بإجراء بعض الاختبارات على أشرطة أدوات Firefox من أجل التعلم ولا يمكنني العثور على أي معلومات حول كيفية تخزين محتويات القائمة المنسدلة "بحث" داخل الملف الشخصي للمستخدم.

هل هناك أي برنامج تعليمي حول كيفية حل هذا؟

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

المحلول

نظرًا لأن الأمر يستغرق وقتًا طويلاً للحصول على إجابة، فقد ذهبت وأقوم بالتحقيق في الأمر بنفسي.هذا ما لدي الآن.ليس كل شيء واضح بالنسبة لي ولكنه يعمل.

لنفترض أن لديك <textbox> مثل هذا، على ملف .xul الخاص بك:

<textbox id="search_with_history" />

عليك الآن إضافة بعض السمات الأخرى لتمكين السجل.

<textbox id="search_with_history" type="autocomplete"
    autocompletesearch="form-history"
    autocompletesearchparam="Search-History-Name"
    ontextentered="Search_Change(param);"
    enablehistory="true"
 />

يمنحك هذا الحد الأدنى لتمكين السجل في مربع النص هذا.
لسبب ما، وهنا يظهر جهلي، يجب أن تحتوي وظيفة الحدث onTextEntered على المعلمة الخاصة بها والتي تسمى "param".لقد جربت "الحدث" ولم ينجح.
لكن هذا وحده لن يقوم بالعمل من تلقاء نفسه.يتعين على المرء إضافة بعض جافا سكريبت للمساعدة في هذه المهمة.

// This is the interface to store the history
const HistoryObject = Components.classes["@mozilla.org/satchel/form-history;1"]
    .getService(
        Components.interfaces.nsIFormHistory2 || Components.interfaces.nsIFormHistory
    );
// The above line was broken into 4 for clearness.
// If you encounter problems please use only one line.

// This function is the one called upon the event of pressing <enter>
// on the text box
function Search_Change(event) {
    var terms = document.getElementById('search_with_history').value;
    HistoryObject.addEntry('Search-History-Name', terms);
}

هذا هو الحد الأدنى المطلق للحصول على تاريخ مستمر.

نصائح أخرى

غوستافو ، أردت أن أفعل نفس الشيء - وجدت إجابة هنا في منتديات دعم موزيلا.(يحرر:أردت حفظ سجل البحث الخاص بي من باب الفائدة، وليس لأنني أردت معرفة كيفية عمل أشرطة أدوات Firefox، كما قلت.)

في الأساس، يتم تخزين هذه البيانات في ملف قاعدة بيانات sqlite يسمىformhistory.sqlite (في دليل ملف تعريف Firefox الخاص بك).يمكنك استخدام ملحق Firefox SQLite Manager لاسترداد البيانات وتصديرها: https://addons.mozilla.org/firefox/addon/5817

يمكنك تصديره كملف CSV (قيم مفصولة بفواصل) وفتحه باستخدام Excel أو أي برنامج آخر.

وهذا له فائدة إضافية تتمثل أيضًا في حفظ سجل البيانات التي أدخلتها في النماذج/الحقول الأخرى على المواقع، مثل حقل البحث على Google، وما إلى ذلك، إذا كانت هذه البيانات محل اهتمامك.

حل غوستافو جيد، ولكن document.getElemenById('search_with_history').value; يفتقد "t" في getElementById

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