首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruby语言中运行jQuery

在Ruby语言中运行jQuery
EN

Stack Overflow用户
提问于 2013-03-15 09:57:32
回答 2查看 1.6K关注 0票数 3

我想在Ruby应用程序中运行jQuery,并使用它来操作HTML。(是的,我知道还有其他Ruby库可以处理这项任务,但我有一个很好的理由在这种情况下使用jQuery。)这个是可能的吗?我知道我可以使用ExecJS在我的Ruby应用程序中执行简单的JavaScript代码,但jQuery似乎不起作用:

代码语言:javascript
复制
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>'

我怎么才能让它工作呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-15 12:20:12

错误消息将告诉您问题所在:

代码语言:javascript
复制
ExecJS::ProgramError: ReferenceError: window is not defined

jQuery是一个用于DOM操作的库。它期望看到所有常见的DOM对象和接口,包括window对象。

您正在使用的ExecJS库没有提供DOM或window对象。它提供了一个JavaScript执行上下文,但与浏览器提供的上下文不同。

您也许可以通过使用另一个库(如JSDOM )来提供jQuery可以使用的DOM,从而使其正常工作。这是a search that may give some tips

第一个链接描述了可能与您想要的内容相似的use of JSDOM and jQuery with ExecJS

也就是说,为什么是jQuery?有几个好的Ruby HTML parsers,包括Nokogiri。为什么不试试其中一个呢?

票数 4
EN

Stack Overflow用户

发布于 2013-03-15 10:58:13

你不能在Ruby中运行jQuery。jQuery不是用Ruby写的,它是用JavaScript写的,所以你需要运行一个JavaScript解释器来使用它。

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15423454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档