mozilla
Your Search Results

    contextmenus

    This article is in need of a technical review.

    The NativeWindow object is only available to privileged code running on Firefox for Android, and is intended for use by Firefox for Android add-ons.

    Summary

    Returns a reference to the NativeWindow.contextmenus object, which can be used to add items to the Firefox for Android context menu, and subsequently remove them. You can add a menu item to the context menu using NativeWindow.contextmenus.add() and remove it using NativeWindow.contextmenus.remove().

    To add a context menu item, you need to supply:

    • name : the name of the item that is displayed to the user
    • selector : determines when the item should be shown. You can use one of a number of predefined selectors, or define your own.
    • callback : a function that is called when the item is selected

    NativeWindow.contextmenus.add() returns a menuID which you can subsequently pass into NativeWindow.contextmenus.remove() to remove the item.

    A common pattern is for a restartless add-on to add and remove menu items in the add-on's bootstrap.js:

    This ensures that the item is always present while the add-on is installed and enabled, and that it is cleaned up properly when the add-on is uninstalled or disabled. But note that bootstrap.js is not attached to a DOM window, so you need to get a window, for example using nsIWindowMediator, before you can use this pattern.

    ExampleNativeWindow-contextmenus.png

    The following example adds a context menu item which is displayed when any element is selected. When the user selects the context menu item, it displays the HTML source for the element in a toast notification:

    var menuID;
    
    function loadIntoWindow(window) {    
      if (!window)    
        return;
      let label = "Show HTML";
      let selector =  window.NativeWindow.contextmenus.SelectorContext("*");
      menuID = window.NativeWindow.contextmenus.add(label, selector, function(target) {      
        window.NativeWindow.toast.show(target.outerHTML, "short");       
      });    
    }    
       
    function unloadFromWindow(window) {    
      if (!window)    
        return;    
      window.NativeWindow.contextmenus.remove(menuID);      
    }

    Methods

    add
    Add a context menu item.
    remove
    Remove a context menu item.

    See also

    Document Tags and Contributors

    Contributors to this page: wbamberg, Canuckistani, kscarfone
    Last updated by: wbamberg,
    Hide Sidebar