WRT构建Firefox附加组件.
是否可以通过一些XPCOM或javascript方法获取鼠标下的元素?(非js-ctypes请,因为这需要操作系统特异性)
当用户按下Ctrl+ Shift+ 时,我想检测鼠标下面的内容M.
现在mouseover,当用户按下这个热键时,我正在为文档添加一个监听器,所以当他移动它时我可以在鼠标下面获取该元素,而不是当他按下热键组合时正好在鼠标下面的元素.
我正在尝试在 Linux 上设置全局热键。
我最初使用 x11 ( libX11.so) 但是我必须从线程中执行此操作。我试了一下,但XPendingEvent并XNextEvent最终崩溃的应用程序。
所以我切换到 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) 在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) 我有一个选项页面组件。该组件由行组成。每一行都是一个设置。该设置是选择、检查、单选或自定义元素。此组件以两种方式更新:
当#2 发生时,意味着用户操作的组件,我希望最顶部组件上的 onChange 被触发。有这样的活动吗?我似乎无法在组件生命周期中找到它。
我不能使用的原因componentDidUpdate是因为当用户触发行的 onChange 时,我需要使用新信息向服务器发出请求。如果 AJAX 告诉组件更新, onComponentDidUpdate 将触发,但我不需要发出 AJAX 请求。
我有这个变量:
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) 我正在使用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
我正在尝试控制主音量.我能够成功地做到这一点:
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?文档没有说明这一点.如果我不繁殖,那么它不起作用.
我有一排像这样的缩略图:

我希望他们的身高相等.这是我的代码:
<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#

我在 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(未找到)。
有谁知道新地点吗?
我使用的库将类型定义为:
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) javascript ×4
promise ×2
deferred ×1
docker ×1
ecmascript-6 ×1
firefox ×1
linux ×1
mouseevent ×1
reactjs ×1
typescript ×1
winapi ×1
x11 ×1
xcb ×1
xpcom ×1