每当我打开很多终端标签并通过键盘在它们之间切换时,每隔一段时间出现一个奇怪的问题就是标签出现故障.通常iTerm将激活/聚焦下一个选项卡到右侧或左侧,但有时我设法将此选项卡焦点顺序拧紧,它将跳过几个,然后切换回选项卡列表中的下一个.
因此,当我使用键盘在Command-left_arrow或Command-right_arrow之间切换选项卡并且选项卡乱序时,它们可能最终在选项卡行上来回跳跃.我还没弄明白我是如何从这个顺序中解脱出来的.
除了退出iTerm并重新启动之外,有没有办法解决这个问题?我该如何做到这一点?
我正在编写一个站点刮板来从ajax站点获取一些特定内容而没有实际链接,只有可点击的文本.我现在只使用javascript大约一个星期,并且正在使用CasperJS,因为它会减少很多工作.
我发现的问题是我正在编写多个函数,它们都做同样的事情,只是根据它所在的页面搜索不同的链接.所以我有:
function getLinks() {
var links = document.querySelectorAll('div.AjaxLink h3');
return Array.prototype.map.call(links, function(link) {
return link.innerText;
});
}
Run Code Online (Sandbox Code Playgroud)
它的运行方式是:
casper.then(function() {
var myLinks = this.evaulate(getLinks);
/* ... link manipulation code code ... */
});
Run Code Online (Sandbox Code Playgroud)
这很好用.我显然不希望有六个函数只有一个不同的查询字符串.所以我想做的是:
function getLinks(findText) {
var links = document.querySelectorAll(findText);
return Array.prototype.map.call(links, function(link) {
return link.innerText;
});
}
Run Code Online (Sandbox Code Playgroud)
然后我试图通过以下方式运行它:
casper.then(function() {
var myLinks = getLinks('div.AjaxLink h3');
/* ... link manipulation code code ... */
});
Run Code Online (Sandbox Code Playgroud)
findText变量正确传入但看起来查询选择器总是返回一个空的NodeList.
我究竟做错了什么?是记录该函数内部创建了一个空文件?