     @btn.decorate @btnEl
     @parseParams()
     @btn.listen goog.ui.Component.EventType.ACTION, @handleAction
+    @invokeFromHash btn
+
+  ###*
+    @protected
+    @param {Element} btn
+  ###
+  invokeFromHash: (btn) ->
+    return unless @state
+    if @dom.getWindow().location.hash is '#' + @state
+      @handleAction()
 
   ###*
     @protected
   ###
   handleAction: =>
+    @dom.getWindow().location.hash = @state if @state
     @btn.call @client, @url, @method, @data, @onSuccess
 
   ###*

    @data = goog.dom.dataset.get(@btnEl, D.DATA) ? {}
    @postAction = String goog.dom.dataset.get(@btnEl, D.POST_ACTION)
    @postElement = String goog.dom.dataset.get(@btnEl, D.POST_ELEMENT)

  ###*
    @protected

    METHOD: 'method'
    URL: 'url'
    DATA: 'data'
    STATE: 'state'

  ###*
    @enum {string}
