小编Dun*_*yne的帖子

如何使用getElementsByTagName()查找所有嵌套元素?

我有以下HTML:

<html>
  <head><title>Title</title></head>
  <body>
    <div id='div2'>
      <a href='#'>1</a>
      <div id='div1'>
        <a href='#'>2</a>
      </div> 
    </div>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

...以及以下Javascript代码,我正在通过Greasemonkey运行:

var nodes = document.body.getElementsByTagName('a');
for (var i = 0; i < nodes.length; i++) {
  var node = nodes[i];
  node.parentNode.removeChild(node);    
}
Run Code Online (Sandbox Code Playgroud)

我希望它能找到并删除所有A标签; 相反,它找到第一个,但不是第二个.据我所知,第二个A标签的嵌套方式有困难.

有人可以让我知道如何删除所有标签,使用getElementsByTagName?有理由我不想使用XPath,如果可能的话.

javascript dom greasemonkey

3
推荐指数
1
解决办法
1万
查看次数

Jasmine规范找不到CoffeeScript中定义的类

我正在Rails 3.1后端构建一个backbone.js应用程序.我正在使用CoffeeScript编写骨干类,并使用Jasmine(通过jasmine-headless-webkit)进行测试.

给出以下(部分)树:

.
??? app
?   ??? assets
?   ?   ??? javascripts
?   ?   ?   ??? views
?   ?   ?       ??? avia_view.js.coffee
??? spec
?   ??? javascripts
?   ?   ??? views
?   ?       ??? avia_view_spec.js.coffee
Run Code Online (Sandbox Code Playgroud)

......我希望avia_view_spec.js.coffee知道Avia.AviaView,这是定义的avia_view.js.coffee.

但是,我从运行中得到以下输出bundle exec jasmine-headless-webkit:

Running Jasmine specs...
F

Avia.AviaView render creates a new MatricesView . (/home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee:10)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~5)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~10)
Run Code Online (Sandbox Code Playgroud)

jasmine.yml …

coffeescript jasmine ruby-on-rails-3.1

3
推荐指数
1
解决办法
3902
查看次数

使用Jasmine监视Javascript构造函数

我正在编写一些Javascript类的规范(backbone.js视图,用Coffeescript编写),我想确保一个视图构建另一个视图.

我试图通过监视构造函数来做到这一点,如下所示:

describe 'Avia.AviaView', ->

  beforeEach ->
    @aviaView = new Avia.AviaView()
    @matricesView = new Backbone.View()
    spyOn(Avia.MatricesView, 'constructor').andReturn @matricesView

  describe 'initialize', ->

    beforeEach ->
      @aviaView.initialize()

    it 'creates a new MatricesView ', ->
      expect(Avia.MatricesView.constructor).toHaveBeenCalledOnce()
Run Code Online (Sandbox Code Playgroud)

initialize()对AviaView 的调用肯定会导致调用MatricesView构造函数,礼貌这一行:

new Avia.MatricesView($("#tabs-3")).initialize()
Run Code Online (Sandbox Code Playgroud)

它确实有效; 如果我手动运行应用程序,我可以看到正在调用的构造函数initialize().但是我的Jasmine规范失败了:

Running Jasmine specs...
F

Avia.AviaView initialize creates a new MatricesView . (/Users/dev/avia/spec/javascripts/views/avia_view_spec.js.coffee:13)
  Expected constructor to be called exactly once, but was called '0' times (line ~14)
    expect(Avia.MatricesView.constructor).toHaveBeenCalledOnce();

FAIL: 1 test, 1 failure, 0.008 secs.
Run Code Online (Sandbox Code Playgroud)

我和几位同事交谈了,他们同意这应该有用......有人能建议一种监视施工人员的好方法吗?

coffeescript jasmine ruby-on-rails-3.1

3
推荐指数
1
解决办法
2435
查看次数

URL解码Common Lisp中的字符串

我有一个包含转义网址的字符串:

http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其解码为以下内容:

http://example.com?foo=bar+baz
Run Code Online (Sandbox Code Playgroud)

但是,我找不到Drakma导出的任何合适的功能.我可以像这样的代码:

* url-string

"http://example.com?foo=bar+baz"
* (drakma:url-encode url-string :utf-8)

"http%3A%2F%2Fexample.com%3Ffoo%3Dbar%2Bbaz"
Run Code Online (Sandbox Code Playgroud)

......所以我认为我走在正确的轨道上.如果有人能提供正确方向的推动我会很感激:-)我正在使用SBCL 1.0.54,它是从64位Linux Mint 13上的源代码构建的.

如果它有助于澄清我正在尝试做什么,在Ruby中,我会做以下事情:

> uri_string = "http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz"
 => "http%3A%2F%2Fexample.com%3Ffoo%3Dbar+baz" 
> URI.decode uri_string
 => "http://example.com?foo=bar+baz" 
Run Code Online (Sandbox Code Playgroud)

url common-lisp drakma

3
推荐指数
2
解决办法
1457
查看次数

连接到Slack IRC网关时出错

我正在使用cl-irc库连接到Slack,通过Slack提供的IRC网关.

但是,当我尝试使用以下命令启动消息循环时,我收到以下错误read-message-loop:

error while parsing arguments to DESTRUCTURING-BIND:
  invalid number of elements in
    ("duncan_bayne" "Welcome" "to" "Slack" "IRC" "Gateway"
     "server" "duncan_bayne!~duncan_bayne@1.2.3.4")
  to satisfy lambda list
    (CL-IRC:NICKNAME CL-IRC::WELCOME-MESSAGE):
  exactly 2 expected, but 8 found
   [Condition of type SB-KERNEL::ARG-COUNT-ERROR]

... 

Backtrace:
  0: ((:METHOD CL-IRC::DEFAULT-HOOK (CL-IRC:IRC-RPL_WELCOME-MESSAGE)) #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
  1: ((:METHOD CL-IRC::APPLY-TO-HOOKS (T)) #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
  2: ((:METHOD CL-IRC:IRC-MESSAGE-EVENT (T CL-IRC:IRC-MESSAGE)) #<unavailable argument> #<CL-IRC:IRC-RPL_WELCOME-MESSAGE irc.tinyspeck.com RPL_WELCOME {1007FC6293}>) [fast-method]
  3: ((:METHOD CL-IRC:READ-MESSAGE (CL-IRC:CONNECTION)) #<CL-IRC:CONNECTION myob.irc.slack.com {10068E8ED3}>) …
Run Code Online (Sandbox Code Playgroud)

irc sbcl common-lisp slack

3
推荐指数
1
解决办法
138
查看次数

为使用NPM的应用程序创建新的FreeBSD端口,而不是Make

我正在为不使用Make 的应用程序(赛普拉斯)创建一个FreeBSD端口; 相反,它使用NPM:

npm run binary-build-linux
cd cli
npm run build
Run Code Online (Sandbox Code Playgroud)

我可以看到两个选项:

  1. 将Makefile作为补丁添加到工作目录.
  2. 说服上游维护者获取一个仅由该端口使用的Makefile.

我想知道是否有我错过的第三个选项:修改我的端口的Makefile以运行一系列shell命令来代替Makefile?读过搬运工的手册后,我看不出有什么方法可以做到这一点.

porting freebsd

3
推荐指数
1
解决办法
78
查看次数

使用Visual Studio安装项目部署Web应用程序时设置默认文档?

我创建了一个安装项目来部署Silverlight + WCF Web应用程序.一切都很好,除了使用默认文档创建应用程序default.aspx.

有人可以告诉我如何 - 甚至是否可能 - 设置安装项目以指定默认文档应该是index.html什么?

iis visual-studio

2
推荐指数
1
解决办法
4002
查看次数

图书馆识别:眼睛张开/闭合,嘴巴张开/闭合,头部运动

我正在编写一个程序,能够识别关于面部的以下内容:

  • 是否打开或关闭眼睛
  • 嘴是打开还是关闭(最好是开放程度)
  • 面部转向的方式(左,右或正面)

而不是从头开始开发这一功能(这是所以不是我的领域)我很想能够使用第三方库.

我希望能够在Linux和Windows上运行生成的软件(按重要性顺序),但乞丐不能选择:-)

OSI批准的许可证会很好,但是可以接受专有许可证.

Ruby或Common Lisp绑定会很棒,但C API也可以.

我非常感谢提供此功能的任何建议(支持或反对特定库).

编辑补充说:该软件的目的是识别婴儿需要喂食的迹象,并发出温和的警报以唤醒沉睡的父母.如果可能的话,这可能是一个比让婴儿变得饥饿并开始哭泣更好的方法,然后在喂奶前让婴儿平静下来.

c ruby common-lisp face-recognition

2
推荐指数
1
解决办法
442
查看次数

easy-acceptor 忽略 :document-root 选项;不提供静态文件

www我正在尝试从项目内的目录中使用 Hunchentoot 提供静态文件。我的接受者定义为:

(defvar *acceptor* (make-instance 'easy-acceptor
        :port 4242
        :document-root (truename "./www/")))
Run Code Online (Sandbox Code Playgroud)

然后我开始:

(start *acceptor*)
Run Code Online (Sandbox Code Playgroud)

接受器可以工作,因为我可以使用它define-easy-handler来创建根页面:

(define-easy-handler (index :uri "/") ()
  (with-html-output-to-string (_)
      (:html
       (:head
        (:title "Hello world")
       (:body
        (:h1 "Hello world!))))))
Run Code Online (Sandbox Code Playgroud)

...当我浏览到http://localhost:4242/时,我看到了该页面。

但我的目录中没有提供静态文件www。例如,如果我创建www/jquery-3.2.1.min.js并浏览到http://localhost:4242/jquery-3.2.1.min.js我会收到 404。

127.0.0.1 - [2017-08-11 08:08:02] "GET /jquery-3.2.1.min.js HTTP/1.1" 404 355 "-" "Mozilla/5.0 (X11; FreeBSD amd64; rv:54.0) Gecko/20100101 Firefox/54.0"

HELLOWORLD> (directory (make-pathname :directory '(:relative "www") :name :wild :type "js"))
(#P"/usr/home/duncan/code/helloworld/www/jquery-3.2.1.min.js")
Run Code Online (Sandbox Code Playgroud)

common-lisp hunchentoot

1
推荐指数
1
解决办法
311
查看次数