Hi Michael, Could you try if the webview/js bridge part of the code works, or doesn't, in a normal MacRuby application? If it doesn't work, please file a ticket on https://www.macruby.org/trac/newticket. If it does, then it might be a HotCocoa problem, in which case please file a ticket here: http://github.com/richkilmer/hotcocoa/issues Thanks, Eloy On 1 feb 2010, at 15:51, Michael Pitra wrote:
I'm trying to do something similar to this example:
http://code.reflectivepixel.com/post/103638573/require-hotcocoa-framework-we...
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