Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. [Solved] Firefox storage get undefined

[Solved] Firefox storage get undefined

Scheduled Pinned Locked Moved Web Development
helpjavascripthtmlquestion
2 Posts 1 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    Valentinor
    wrote on last edited by
    #1

    I'm trying to make an add-on for Firefox that will store some values which will be used later on in an contextMenus. Getting the value and setting a new one in options_ui works just fine. The problem is when I try to get the value by using the new contextMenu I am adding in background.js. The new contextMenu it is added, the window for saving the file appers, but the value from storage returns undefined. Can anyone help me with this, point me where I'm doing something wrong? I am setting a new value before using the contextMenu. background.js

    var gettingValue = browser.storage.sync.get("number");
    gettingValue.then(item =>{
    browser.contextMenus.create({
    id: "save-image",
    title: "Save image",
    contexts: ["image"],
    });

    browser.contextMenus.onClicked.addListener((info, tab) => {
    	if (info.menuItemId === "save-image") {
    		let name = "Initial";
    		if(item) {
    			name = item.number;
    		} else {
    			name = "Number not found";
    		}
    		browser.downloads.download({
    			url : info.srcUrl,
    			filename : name + ".jpg",
    			saveAs : true
    		});
    	}
    });
    

    });

    options.js

    function saveOptions(e) {
    e.preventDefault();
    browser.storage.sync.set({
    number: document.querySelector("#newNumber").value
    });
    }

    function restoreOptions() {
    let getting = browser.storage.sync.get("number");
    getting.then(setCurrentChoice, onError);

    function setCurrentChoice(result) {
    	document.querySelector("#newNumber").value = result.number || "No number was set";
    }
    
    function onError(error) {
    	console.log(\`Error: ${error}\`);
    }
    

    }

    document.addEventListener("DOMContentLoaded", restoreOptions);
    document.querySelector("form").addEventListener("submit", saveOptions);

    options.html

        Number input: 
        Save
    

    Permissions in manifest

    "permissions": \[
        "contextMenus",
        "downloads",
    	"storage"
    \],
    
    V 1 Reply Last reply
    0
    • V Valentinor

      I'm trying to make an add-on for Firefox that will store some values which will be used later on in an contextMenus. Getting the value and setting a new one in options_ui works just fine. The problem is when I try to get the value by using the new contextMenu I am adding in background.js. The new contextMenu it is added, the window for saving the file appers, but the value from storage returns undefined. Can anyone help me with this, point me where I'm doing something wrong? I am setting a new value before using the contextMenu. background.js

      var gettingValue = browser.storage.sync.get("number");
      gettingValue.then(item =>{
      browser.contextMenus.create({
      id: "save-image",
      title: "Save image",
      contexts: ["image"],
      });

      browser.contextMenus.onClicked.addListener((info, tab) => {
      	if (info.menuItemId === "save-image") {
      		let name = "Initial";
      		if(item) {
      			name = item.number;
      		} else {
      			name = "Number not found";
      		}
      		browser.downloads.download({
      			url : info.srcUrl,
      			filename : name + ".jpg",
      			saveAs : true
      		});
      	}
      });
      

      });

      options.js

      function saveOptions(e) {
      e.preventDefault();
      browser.storage.sync.set({
      number: document.querySelector("#newNumber").value
      });
      }

      function restoreOptions() {
      let getting = browser.storage.sync.get("number");
      getting.then(setCurrentChoice, onError);

      function setCurrentChoice(result) {
      	document.querySelector("#newNumber").value = result.number || "No number was set";
      }
      
      function onError(error) {
      	console.log(\`Error: ${error}\`);
      }
      

      }

      document.addEventListener("DOMContentLoaded", restoreOptions);
      document.querySelector("form").addEventListener("submit", saveOptions);

      options.html

          Number input: 
          Save
      

      Permissions in manifest

      "permissions": \[
          "contextMenus",
          "downloads",
      	"storage"
      \],
      
      V Offline
      V Offline
      Valentinor
      wrote on last edited by
      #2

      Solution:

      browser.contextMenus.create({
      id: "save-image",
      title: "Save image",
      contexts: ["image"],
      });

      browser.contextMenus.onClicked.addListener((info, tab) => {
      if (info.menuItemId === "save-image") {
      var gettingValue = browser.storage.sync.get("number");
      gettingValue.then(item =>{
      let name = "Initial";
      if(item) {
      name = item.number;
      } else {
      name = "Number not found";
      }
      browser.downloads.download({
      url : info.srcUrl,
      filename : name + ".jpg",
      saveAs : true
      });
      });
      }
      });

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      • Login

      • Don't have an account? Register

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • World
      • Users
      • Groups