我正试图找到一种模拟按键的方法.
例如,当启动功能时,应按下"向下箭头"键,因此网页应略微滚动.
我只对Chrome感兴趣,jQuery或普通JS都适合.(普通的JS会更优选).
这是我尝试过的代码示例之一:
var e = $.Event("keydown", { keyCode: 40}); // 40 = down arrow
$("body").trigger(e);
// When I launch it the console, nothing happens. The page is not scrolled.
// May be I missed some obvious?
Run Code Online (Sandbox Code Playgroud)
我搜索并发现了以下相关问题,但解决方案对我不起作用:
换一种说法
使用AutoHotkey,您可以轻松地制作以下内容:
Down::
Send, {Up}
Run Code Online (Sandbox Code Playgroud)
然后,如果按Down箭头键,它将被触发Up.我只想用JS实现它.
这是我尝试创建伪表,使用<dl>和display: grid.
实际上,它的工作原理.唯一的问题是,我被迫使用丑陋的方式来定义行.这是完全手动的方式.因此,如果我在表格中有30行,那么dt + dd + ... + dd对每一行重复都会非常愚蠢.
如何解决这个问题?
(我不想使用真正的表,因为它适用于Markdown).
dl {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
dt {
text-align: center;
}
dd {
margin-left: 0;
}
dt, dd {
border: 1px solid lightgray;
padding: 0 1em;
}
/* Ugly part
* (Red, yellow, and green colors are just for demo)
*/
dt {
grid-row-start: 1;
}
dt + dd {
grid-row-start: 2;
color: rgb(244, 67, 54);
}
dt + dd + …Run Code Online (Sandbox Code Playgroud)有没有办法以某种方式模拟Shift + Click?
这段代码工作得很好,但目前没有班次:
//--- Get the first link that has "stackoverflow" in its URL.
var targetNode = document.querySelector ("a[href*='stackoverflow']");
if (targetNode) {
//--- Simulate a natural mouse-click sequence.
triggerMouseEvent (targetNode, "mouseover");
triggerMouseEvent (targetNode, "mousedown");
triggerMouseEvent (targetNode, "mouseup");
triggerMouseEvent (targetNode, "click");
}
function triggerMouseEvent (node, eventType) {
var clickEvent = document.createEvent ('MouseEvents');
clickEvent.initEvent (eventType, true, true);
node.dispatchEvent (clickEvent);
}
Run Code Online (Sandbox Code Playgroud) 我试图了解vimdiff的工作方式。
在这里,我尝试比较两个简单的文件。第一:
abcdefghijklmnopqrstuvwxyz
foo
abcdefghijklmnopqrstuvwxyz iii
bar
Run Code Online (Sandbox Code Playgroud)
第二:
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)
这是diffmerge实用程序的结果:
这是vim的结果:
请注意,vim看不到abc...xyz和abc...xyz iii行之间的相似性,也没有在视觉上将它们排列在一行上。
在这种情况下是否有一些设置可以改善vimdiff?
我知道以下两种创建元素并为其分配类的方法:
const el = document.createElement('div');
el.classList.add('foo');
Run Code Online (Sandbox Code Playgroud)
const el = document.createElement('div');
foo.className = 'foo';
Run Code Online (Sandbox Code Playgroud)
有没有一步解决的办法?我试过
const el = document.createElement('div').classList.add('foo');
Run Code Online (Sandbox Code Playgroud)
但它不起作用。