小编jsv*_*jsv的帖子

如何在JavaScript中模拟按键?

我正试图找到一种模拟按键的方法.

例如,当启动功能时,应按下"向下箭头"键,因此网页应略微滚动.

我只对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实现它.

javascript jquery events

20
推荐指数
2
解决办法
2万
查看次数

使用定义列表和网格布局创建表

这是我尝试创建伪表,使用<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)

html css html5 css3 css-grid

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

模拟shift-mouseclick

有没有办法以某种方式模拟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)

javascript jquery

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

改进vimdiff相似性搜索机制的方法

我试图了解vimdiff的工作方式。

在这里,我尝试比较两个简单的文件。第一:

abcdefghijklmnopqrstuvwxyz

foo

abcdefghijklmnopqrstuvwxyz iii

bar
Run Code Online (Sandbox Code Playgroud)

第二:

abcdefghijklmnopqrstuvwxyz

abcdefghijklmnopqrstuvwxyz
Run Code Online (Sandbox Code Playgroud)

这是diffmerge实用程序的结果:

在此处输入图片说明

这是vim的结果:

在此处输入图片说明

请注意,vim看不到abc...xyzabc...xyz iii行之间的相似性,也没有在视觉上将它们排列在一行上。

在这种情况下是否有一些设置可以改善vimdiff?

vim

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

一步创建元素并分配类

我知道以下两种创建元素并为其分配类的方法:

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)

但它不起作用。

javascript

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

标签 统计

javascript ×3

jquery ×2

css ×1

css-grid ×1

css3 ×1

events ×1

html ×1

html5 ×1

vim ×1