هل تتمتع ملحقات الكروم بإمكانية الوصول إلى التخزين المحلي؟

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

سؤال

هل من الممكن تخزين البيانات بطريقة يمكن الوصول إليها بعد إعادة تشغيل المتصفح في سياق امتداد الكروم؟

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

المحلول

حتى أبسط من ذلك:

ليقرأ:

    var myStoredValue = localStorage["TheKeyToMyStoredValue"];

لأكتب:

    localStorage["TheKeyToMyStoredValue"] = myNewValueToStore;

للتخلص من:

    delete localStorage["TheKeyToMyStoredValue"];

نصائح أخرى

نعم إنه كذلك. من المحتمل أن يتجاوز الانتقال الكامل عن كيفية القيام بذلك طول إجابة stackoverflow المعقولة ، لذلك سأشير إليك هذا البرنامج التعليمي الواسع للغاية بقلم راجديب دوا.

سيبدو الرمز ذي الصلة هكذا:

// Store item in local storage:
function setItem(key, value) {
  try {
    log("Storing [" + key + ":" + value + "]");
    window.localStorage.removeItem(key);      // <-- Local storage!
    window.localStorage.setItem(key, value);  // <-- Local storage!
  } catch(e) {
    log("Error inside setItem");
    log(e);
  }
  log("Return from setItem" + key + ":" +  value);
}

// Gets item from local storage with specified key.
function getItem(key) {
  var value;
  log('Retrieving key [' + key + ']');
  try {
    value = window.localStorage.getItem(key);  // <-- Local storage!
  }catch(e) {
    log("Error inside getItem() for key:" + key);
  log(e);
  value = "null";
  }
  log("Returning value: " + value);
  return value;
}

// Clears all key/value pairs in local storage.
function clearStrg() {
  log('about to clear local storage');
  window.localStorage.clear(); // <-- Local storage!
  log('cleared');
}

function log(txt) {
  if(logging) {
    console.log(txt);
  }
}

يدعم Chrome أيضًا HTML5 قاعدة بيانات الويب المواصفات. يمنحك هذا قاعدة بيانات SQL محلية ، بحيث يمكنك القيام بأشياء أكثر تعقيدًا من مجرد تخزين أزواج الاسم/القيمة في التخزين المحلي.

إصدار Chrome الحالي يحتوي على سعة تخزين محلية.

لقد استخدمته بنفسي. يمكنك استخدام Modernizr لاكتشاف ما إذا كان المتصفح يدعمه أم لا. لقد كتبت حلًا لعميل حيث أقوم بإعادة تشغيل ملف تعريف الارتباط في حالة عدم وجود تخزين محلي ، ولكن لا ينبغي أن يكون هذا يمثل مشكلة في الامتدادات.

في الوقت الحاضر ، قد يكون من الأفضل استخدام Chrome.storagechrome.storage غير متزامن ، مما يجعله أسرع ويقتصر LocalStorage على 5 ميجابايت.

هناك بالفعل بعض الإجابات الرائعة هنا ، ولكن لاحظ أنه إذا قررت استخدام برنامج نصي للمحتوى في امتدادك ، فلن يتمكن برنامج المحتوى من الوصول إلى LocalStorage. وبالتالي Chrome.storage هو بديل جيد.

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