我有这段代码在javascript中工作:
(document.querySelectorAll('[rel="next"]'))[0].click()
我正在尝试在parenscript(来自 Common Lisp 生态系统的库)中编写相同的内容。我当前草图中的表达式正在由 REPL 在一个名为 Nyxt available here的包下进行评估。
CL-USER> (in-package :nyxt)
Nyxt 被设计成一个无限可扩展的浏览器。因此,用户可以在程序运行时更改代码和/或创建扩展。这是设计的实时可破解性。
这是代码:
(ps:chain document (query-selector-all "[rel=next]")) (click))
使用ps:ps
我可以“看到” parenscript 正在构建什么:
NYXT> (ps:ps (ps:chain document (query-selector-all "[rel=next]") (click)))
"document.querySelectorAll('[rel=next]').click();"
上面的结果接近我所需要的。但是,仍然缺少一件事:在.click()
.
我有一些失败的 尝试。
- 如果我尝试:
NYXT> (ps:ps (ps:chain document (query-selector-all "[rel=next]") [0] (click)))
我得到一个额外的“。”:
"document.querySelectorAll('[rel=next]').[0].click();"
- 如果我尝试:
NYXT> (ps:ps (ps:chain document (query-selector-all "[rel=next]") ([0]) (click)))
我得到一个额外的“。” 和不必要的“()”:
"document.querySelectorAll('[rel=next]').[0]().click();"
- 如果我尝试:
NYXT> (ps:ps (ps:chain document (query-selector-all "[rel=next]")[0] (click)))
我得到一个额外的“。”:
"document.querySelectorAll('[rel=next]').[0].click();"
- 如果我尝试:
NYXT> (ps:ps (ps:chain document (query-selector-all "[rel=next]" [0]) (click)))
我得到一个额外[0]
的论点:
"document.querySelectorAll('[rel=next]', [0]).click();"
我该如何插入它?