我想在Ruby應用程序中運行jQuery並使用它來操縱HTML字符串。 (是的,我知道還有其他的Ruby庫可以處理這個任務,但在這種情況下,我有很好的理由使用jQuery)這是可能的嗎?我知道,我可以使用ExecJS在我的Ruby應用程序來執行簡單的JavaScript代碼,但jQuery的似乎並不奏效:在Ruby中運行jQuery
irb(main):001:0> require 'execjs'
=> true
irb(main):002:0> require 'open-uri'
=> true
irb(main):003:0> context = ExecJS.compile(open("http://code.jquery.com/jquery-1.9.1.js").read)
=> <Return omitted for brevity>
irb(main):004:0> context.call("$", "<div>Test</div>")
ExecJS::ProgramError: ReferenceError: window is not defined
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:68:in `extract_result'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/external_runtime.rb:28:in `block in exec'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-.4.0/lib/execjs/external_runtime.rb:41:in `compile_to_tempfile'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-.4.0/lib/execjs/external_runtime.rb:27:in `exec'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-.4.0/lib/execjs/external_runtime.rb:19:in `eval'
from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/execjs-.4.0/lib/execjs/external_runtime.rb:33:in `call'
from (irb):4
from c:/RailsInstaller/Ruby1.9.3/bin/irb:12:in `<main>'
我如何得到這個工作?
Ajedi我正在嘗試做類似的事情,並問這個問題:[在Web應用程序的服務器端和客戶端之間共享業務邏輯?](http://programmers.stackexchange.com/questions/202567/sharing -business-logic-between-server-side-and-client-side-of-web-application/202586?noredirect = 1#202586)讓我知道你發現了什麼! – thoughtpunch 2013-06-24 17:54:29
@thoughtpunch不幸的是,我還沒有花時間進一步研究這個。 我想要做的是創建一種MVC庫,在Rails應用程序上運行客戶端和服務器端,這樣我就可以利用基於AJAX的快速頁面加載和動態JavaScript動畫,當用戶啓用了JavaScript,但當它們沒有時(或者當Googlebot出現時)仍然可以正常工作。我有幾點想法可以讓我能夠做到這一點,但沒有什麼堅實的... – Ajedi32 2013-06-24 18:19:40