小编Noi*_*art的帖子

获取当前在鼠标下的元素而不使用鼠标事件

WRT构建Firefox附加组件.

是否可以通过一些XPCOM或javascript方法获取鼠标下的元素?(非js-ctypes请,因为这需要操作系统特异性)

当用户按下Ctrl+ Shift+ 时,我想检测鼠标下面的内容M.

现在mouseover,当用户按下这个热键时,我正在为文档添加一个监听器,所以当他移动它时我可以在鼠标下面获取该元素,而不是当他按下热键组合时正好在鼠标下面的元素.

javascript xpcom firefox-addon mouseevent

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

xcb_grab_key 没有错误但事件循环没有捕获(全局热键)

我正在尝试在 Linux 上设置全局热键。

我最初使用 x11 ( libX11.so) 但是我必须从线程中执行此操作。我试了一下,但XPendingEventXNextEvent最终崩溃的应用程序。

所以我切换到 xcb ( libxcb.so.1)。没有错误,我什至检查过xcb_request_check但是事件循环没有发现任何东西。一旦我开始循环,我只会得到一个如下所示的事件:

{
    response_type: 0,
    pad0: 10,
    sequence: 2,
    pad: [620, 2162688, 0, 0, 0, 0, 0],
    full_sequence: 2
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码,我实际上是在 js-ctypes 中这样做的,但我减少了所有的东西,只显示简单的不可知代码:

conn = xcb_connect(null, null);

keysyms = xcb_key_symbols_alloc(conn);

keycodesPtr = xcb_key_symbols_get_keycode(keysyms, XK_Space);

setup = xcb_get_setup(conn);

screens = xcb_setup_roots_iterator(setup);
screensCnt = screens.rem;

for (var i=0; i<screensCnt; i++) {
    rez_grab = xcb_grab_key(conn, 1, screens.data.root, XCB_MOD_MASK_ANY, keycodesPtr[0], XCB_GRAB_MODE_ASYNC, XCB_GRAB_MODE_ASYNC);

    rez_err = xcb_request_check(conn, rez_grab); …
Run Code Online (Sandbox Code Playgroud)

linux x11 xcb

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

承诺拒绝功能

在javascript中如何拒绝承诺?简单地返回new Error('blah')不正常工作正确错误控制台抛出".then不是一个函数"或类似的东西.

所以我包括了Promise.jsm然后这样return Promise.reject(new Error('blah'))做我的问题是:如果我在一个承诺中:那么我不必返回Promise.rject并且只能返回新的错误吗?

 //mainPromise chains to promise0 and chains to promise1
function doPromise(rejectRightAway) {
    if (rejectRightAway) {
        return Promise.reject(new Error('intending to throw mainPromise rejection')); //is this right place to use Promise.reject? //returning just new Error throws in error console, something like: '.then is not a function' and points to the onReject function of mainPromise.then
    }

    promise0.then(
        function () {

            var promise1 = somePromiseObject;
            promise1.then(
                function () {
                    alert('promise1 success');
                },
                function (aRejReason) {
                    alert('promise1 …
Run Code Online (Sandbox Code Playgroud)

javascript firefox firefox-addon promise

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

组件级 onChange 事件?

我有一个选项页面组件。该组件由行组成。每一行都是一个设置。该设置是选择、检查、单选或自定义元素。此组件以两种方式更新:

  1. AJAX 告诉它使用 setState 进行更新 - 我将这个 setState 分类为组件 onChange 而不是组件更新
  2. 用户操作一行,触发select/radio/check onChange触发,onChange触发最上面组件的setState——这个setState我归类为组件onChange

当#2 发生时,意味着用户操作的组件,我希望最顶部组件上的 onChange 被触发。有这样的活动吗?我似乎无法在组件生命周期中找到它。

我不能使用的原因componentDidUpdate是因为当用户触发行的 onChange 时,我需要使用新信息向服务器发出请求。如果 AJAX 告诉组件更新, onComponentDidUpdate 将触发,但我不需要发出 AJAX 请求。

reactjs

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

ES6在结构中的计算属性 - 构造整个对象

我有这个变量:

var a = {b:1, c:2, d:'rawr', rawr:10};
Run Code Online (Sandbox Code Playgroud)

我想将这些构建到本地范围,所以我这样做:

var {b, c, d} = a;
Run Code Online (Sandbox Code Playgroud)

这很好但我需要rawr离开.我试过这个:

var {b, c, d, [a.d]} = a;
Run Code Online (Sandbox Code Playgroud)

但这让我missing : after property id这么努力:

所以我接着做了两步:

var {b, c, d} = a;
var {[d]} = a;
Run Code Online (Sandbox Code Playgroud)

然而,这给了我SyntaxError: missing : after property id.无论如何在ES6中这样做?

预期结果是:

var b = 1;
var c = 2;
var d = 'rawr';
var rawr = 10;
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

Promise.defer标准?

我正在使用Promises,并喜​​欢像这样使用它:

function Deferred() {
    this.resolve = null;
    this.reject = null;
    this.promise = new Promise(function(resolve, reject) {
        this.resolve = resolve;
        this.reject = reject;
    }.bind(this));
    Object.freeze(this);
}

function somethingAsync() {

    var deferred = new Deferred();

    // do stuff then deferred.resolve();

    return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)

我刚刚在Firefox Promise.defer()中看到了同样的东西,这个标准是什么?或者只针对Firefox?我甚至无法在Firefox的Promise文档中找到它 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

javascript promise deferred

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

为什么WM_APPCOMMAND LPARAM必须乘以65536

我正在尝试控制主音量.我能够成功地做到这一点:

HWND mainhwnd = CreateWindow(szWindowClass, _T("window-noit-ext-profilist"), 0, 0, 0, 0, 0, HWND_MESSAGE, NULL, wcex.hInstance, NULL);
if (!mainhwnd) {
    MessageBox(NULL, _T("Profilist: Call to CreateWindow failed!"), _T("window-noit-ext-profilist"), NULL);
    return 1;
}


SendMessage(mainhwnd, WM_APPCOMMAND, (WPARAM)mainhwnd, (LPARAM)(APPCOMMAND_VOLUME_MUTE * 65536)); // mute

SendMessage(mainhwnd, WM_APPCOMMAND, (WPARAM)mainhwnd, (LPARAM)(APPCOMMAND_VOLUME_DOWN * 65536)); // vol down

SendMessage(mainhwnd, WM_APPCOMMAND, (WPARAM)mainhwnd, (LPARAM)(APPCOMMAND_VOLUME_UP * 65536)); // vol up
Run Code Online (Sandbox Code Playgroud)

为什么我要乘以65,536?文档没有说明这一点.如果我不繁殖,那么它不起作用.

winapi

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

Bootstrap 3个相同高度的缩略图(就像bootstrap 4中的高度相同的卡片)

我有一排像这样的缩略图:

我希望他们的身高相等.这是我的代码:

<div class="row text-center">
    <div class="col-md-3 col-sm-6">
        <div class="thumbnail">
            <div class="caption">
                <h3>HOTKEY + COMBO</h3>
                <p>Hotkey description goes here. Category only shown in explore.</p>
                <p>
                    <a href="#" class="btn btn-default" data-tooltip="Change Hotkey">
                </p>
            </div>
        </div>
    </div>
    <div class="col-md-3 col-sm-6">
        <div class="thumbnail">
            <div class="caption">
                <h3>HOTKEY + COMBO</h3>
                <p>short desc</p>
                <p>
                    <a href="#" class="btn btn-default" data-tooltip="Change Hotkey">
                </p>
            </div>
        </div>
    </div>
    <div class="col-md-3 col-sm-6 hotkey-add">
        <div class="thumbnail">
            <div class="caption">
                <p></p>
                <p><a href="#" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span></a></p>
            </div>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这可能吗?就像我们在bootstrap4中看到的,这里是相同的高度卡:

http://www.codeply.com/render/KrUO8QpyXP#

twitter-bootstrap-3 twitter-bootstrap-4

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

docker 操作的新位置

我在 docker 上使用这个:

- name: Build container image
  uses: actions/docker/cli@master
  with:
    ///// removed

- name: Docker Login
  uses: actions/docker/login@master
  env:
    ///// removed
Run Code Online (Sandbox Code Playgroud)

然而 github.com/actions/docker 似乎不再存在。

我的构建给出了 404:

无法下载操作“ https://api.github.com/repos/actions/docker/tarball/master ”。错误响应状态代码不表示成功:404(未找到)。

有谁知道新地点吗?

docker github-actions

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

从对象联合中省略一个对象

我使用的库将类型定义为:

export declare type LogInResult = {
    type: 'cancel';
} | {
    type: 'success';
    accessToken: string | null;
    idToken: string | null;
    refreshToken: string | null;
    user: GoogleUser;
};
Run Code Online (Sandbox Code Playgroud)

我想SuccessLoginResult通过省略{ type: 'cancel' }对象来创建一个类型,这可能吗?

我试过的一些伪代码不起作用:

type SuccessLoginResult = Omit<LogInResult, { type: 'cancel' }>
Run Code Online (Sandbox Code Playgroud)

typescript

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