Hi Eloy, it is not related to hotcocoa since my original application is not using it - this example was taken because it was that simple that it fitted in some lines of code.
The question is rather, if I should attach a stripped down version of my app for better testing purposes. Thanks, Michael Am 02.02.2010 um 22:22 schrieb Eloy Duran: > 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-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 > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel