• Skip to main content
  • Select language
  • Skip to search
mozilla
Mozilla Developer Network
  • Sign in
    • Persona
    • GitHub
  • Web Platform
    Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • APIs / DOM
    • Apps
    • MathML
    References & Guides
    • Learn the Web
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • ...more docs
  • Mozilla Docs
    • Add-ons
    • Firefox
    • Firefox Marketplace
    • Firefox OS
    • Persona
  • Developer Tools
  • Feedback
    • Get Firefox help
    • Get web development help
    • Join the MDN community
    • Report a content problem
    • Report a bug
  •  
Add-ons
    • No translations exist for this article.
    • Add a translation
  • Edit
  • Advanced
    • History
    • Print this article
  1. MDN
  2. Mozilla
  3. Add-ons
  4. WebExtensions
  5. JavaScript APIs
  6. webNavigation
  7. webNavigation.onBeforeNavigate
Your Search Results

    webNavigation.onBeforeNavigate

    In This Article
    1. Syntax
    2. addListener syntax
      1. Parameters
    3. Additional objects
      1. details
    4. Browser compatibility
    5. Examples

    Fired when a navigation is about to occur.

    SyntaxEdit

    browser.webNavigation.onBeforeNavigate.addListener(function(
      details // object
    ) {...})
    browser.webNavigation.onBeforeNavigate.removeListener(listener)
    browser.webNavigation.onBeforeNavigate.hasListener(listener)

    Events have three functions:

    addListener(callback)
    Adds a listener to this event.
    removeListener(listener)
    Stop listening to this event. The listener argument is the listener to remove.
    hasListener(listener)
    Check whether listener is registered for this event. Returns true if it is listening, false otherwise.

    addListener syntaxEdit

    Parameters

    callback

    Function that will be called when this event occurs. The function will be passed the following arguments:

    details
    object.

    Additional objectsEdit

    details

    tabId
    integer. The ID of the tab in which the navigation is about to occur.
    url
    string.
    processId
    integer. The ID of the process runs the renderer for this tab.
    frameId
    integer. 0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique for a given tab and process.
    parentFrameId
    integer. ID of frame that wraps the frame. Set to -1 of no parent frame exists.
    timeStamp
    number. The time when the browser was about to start the navigation, in milliseconds since the epoch.

    Browser compatibilityEdit

    • Desktop
    • Mobile
    EdgeFirefoxChromeOpera
    Basic support?45.0Yes33
    Firefox
    Basic support48.0

    ExamplesEdit

    Acknowledgements

    This API is based on Chromium's chrome.webNavigation API. This documentation is derived from web_navigation.json in the Chromium code.

    // Copyright 2015 The Chromium Authors. All rights reserved.
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions are
    // met:
    //
    //    * Redistributions of source code must retain the above copyright
    // notice, this list of conditions and the following disclaimer.
    //    * Redistributions in binary form must reproduce the above
    // copyright notice, this list of conditions and the following disclaimer
    // in the documentation and/or other materials provided with the
    // distribution.
    //    * Neither the name of Google Inc. nor the names of its
    // contributors may be used to endorse or promote products derived from
    // this software without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
    // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
    // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
    // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    Share:
    • Twitter
    • Facebook
    • Google+

    Document Tags and Contributors

    Tags: 
    • add-ons
    • Add-ons
    • API
    • Event
    • Extensions
    • Non-standard
    • onBeforeNavigate
    • Reference
    • WebExtensions
    • webNavigation
     Contributors to this page: wbamberg
     Last updated by: wbamberg, Apr 14, 2016, 4:30:14 PM
    See also
    1. WebExtensions
    2. Getting started
      1. Prerequisites
      2. Anatomy of a WebExtension
      3. Packaging and Installation
      4. Walkthrough
      5. Examples
    3. Guides
      1. Content scripts
      2. Porting from Google Chrome
      3. Match patterns
      4. Debugging
      5. Chrome incompatibilities
    4. JavaScript APIs
      1. alarms
      2. bookmarks
      3. browserAction
      4. contextMenus
      5. cookies
      6. downloads
      7. events
      8. extension
      9. extensionTypes
      10. i18n
      11. idle
      12. notifications
      13. pageAction
      14. runtime
      15. storage
      16. tabs
      17. webNavigation
        1. Methods
          1. getAllFrames()
          2. getFrame()
        2. Types
          1. TransitionQualifier
          2. TransitionType
        3. Events
          1. onBeforeNavigate
          2. onCommitted
          3. onCompleted
          4. onCreatedNavigationTarget
          5. onDOMContentLoaded
          6. onErrorOccurred
          7. onHistoryStateUpdated
          8. onReferenceFragmentUpdated
          9. onTabReplaced
      18. webRequest
      19. windows
    5. Manifest keys
      1. applications
      2. background
      3. browser_action
      4. content_scripts
      5. default_locale
      6. description
      7. icons
      8. manifest_version
      9. name
      10. options_ui
      11. page action
      12. permissions
      13. version
      14. web_accessible_resources
    6. Add-on SDK
    7. Getting started
      1. Installation
      2. Getting started
      3. Troubleshooting
    8. High-Level APIs
      1. addon-page
      2. base64
      3. clipboard
      4. context-menu
      5. hotkeys
      6. indexed-db
      7. l10n
      8. notifications
      9. page-mod
      10. page-worker
      11. panel
      12. passwords
      13. private-browsing
      14. querystring
      15. request
      16. selection
      17. self
      18. simple-prefs
      19. simple-storage
      20. system
      21. tabs
      22. timers
      23. ui
      24. url
      25. widget
      26. windows
    9. Low-Level APIs
      1. /loader
      2. chrome
      3. console/plain-text
      4. console/traceback
      5. content/content
      6. content/loader
      7. content/mod
      8. content/symbiont
      9. content/worker
      10. core/heritage
      11. core/namespace
      12. core/promise
      13. dev/panel
      14. event/core
      15. event/target
      16. frame/hidden-frame
      17. frame/utils
      18. fs/path
      19. io/byte-streams
      20. io/file
      21. io/text-streams
      22. lang/functional
      23. lang/type
      24. loader/cuddlefish
      25. loader/sandbox
      26. net/url
      27. net/xhr
      28. places/bookmarks
      29. places/favicon
      30. places/history
      31. platform/xpcom
      32. preferences/event-target
      33. preferences/service
      34. remote/child
      35. remote/parent
      36. stylesheet/style
      37. stylesheet/utils
      38. system/child_process
      39. system/environment
      40. system/events
      41. system/runtime
      42. system/unload
      43. system/xul-app
      44. tabs/utils
      45. test/assert
      46. test/harness
      47. test/httpd
      48. test/runner
      49. test/utils
      50. ui/button/action
      51. ui/button/toggle
      52. ui/frame
      53. ui/id
      54. ui/sidebar
      55. ui/toolbar
      56. util/array
      57. util/collection
      58. util/deprecate
      59. util/list
      60. util/match-pattern
      61. util/object
      62. util/uuid
      63. window/utils
    10. Firefox for Android
    11. Getting started
      1. Walkthrough
      2. Debugging
      3. Code snippets
    12. APIs
      1. Accounts.jsm
      2. BrowserApp
      3. HelperApps.jsm
      4. Home.jsm
      5. HomeProvider.jsm
      6. JavaAddonManager.jsm
      7. NativeWindow
      8. Notifications.jsm
      9. PageActions.jsm
      10. Prompt.jsm
      11. RuntimePermissions.jsm
      12. Snackbars.jsm
      13. Sound.jsm
      14. Tab
    13. Legacy
    14. Restartless extensions
      1. Overview
    15. Overlay extensions
      1. Overview
    16. Themes
    17. Lightweight themes
      1. Overview
    18. Complete themes
      1. Overview
    19. Publishing add-ons
    20. Guides
      1. Signing and distribution overview
      2. Submit an add-on
      3. Review policies
      4. Developer agreement
      5. Featured add-ons
      6. Contact addons.mozilla.org
    21. Community and support
    22. Channels
      1. Add-ons blog
      2. Add-on forums
      3. Stack Overflow
      4. Development newsgroup
      5. IRC Channel

    © 2005-2016 Mozilla Developer Network and individual contributors.

    Content is available under these licenses.

    • About MDN
    • Terms
    • Privacy
    • Cookies
    • Contribute to the code