I'm trying to do something similar to this example:

http://code.reflectivepixel.com/post/103638573/require-hotcocoa-framework-webkit-class

Code excerpt:

require 'hotcocoa'
framework 'webkit'
class Application
  include HotCocoa
  FULL={:expand => [:width,:height]}
  BASE=<<-END
    <html><head><style type="text/css">
    * { font-family: Monaco; }
    </style><script type="text/javascript">
    function say(arg) { window.TheBridge.click(arg);}
    </script>
    </head><body><h3>Ruby JavaScript Bridge</h3>
    <a href="#" onclick="say('hi')">tell</a></body></html>
  END
  def click(arg) #called from javascript
    root = document.createElement("div");
    root.innerHTML="javascript tells ruby: #{arg}"
    document.body.appendChild(root)
  end
  def document
    @web_view.mainFrame.DOMDocument
  end
  def self.webScriptNameForSelector(sel) #hide : in name
    sel.to_s.sub(/:$/,'') if is_available_selector?(sel)
  end
  def self.isSelectorExcludedFromWebScript(sel)
    ! is_available_selector?(sel)
  end
  def self.isKeyExcludedFromWebScript(key)
    true
  end
  def self.is_available_selector?(sel)
    ['click:'].include?(sel.to_s)
  end
  def start
    application :name => "MyBridge" do |app|
      app.delegate = self
      window :title => "MyBridge",
        :frame => [10, 620, 330, 230] do |win|
        win << @web_view=web_view(:layout => FULL) do |wv|
          wv.mainFrame.loadHTMLString BASE, baseURL: nil
          wv.frameLoadDelegate=self
          wso=wv.windowScriptObject #make visible to JS
          wso.setValue(self, forKey:"TheBridge")
        end
        win.will_close { exit }
      end
    end
  end
end
Application.new.start

Clicking on "tell" does not work. It seems, that the selector for "click:" is not found. When logging the selector values in self.isSelectorExcludedFromWebScript(sel), the "click:" selector is not amongst the results.

What am I missing here?

Regards,
Michael

_______________________________________________
MacRuby-devel mailing list
MacRuby-devel@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to