小编Flo*_*ine的帖子

我如何宣传原生XHR?

我想在我的前端应用程序中使用(本机)promises来执行XHR请求,但没有庞大框架的所有tomfoolery.

我希望我的XHR返回的希望,但是,这并不工作(给我:Uncaught TypeError: Promise resolver undefined is not a function)

function makeXHRRequest (method, url, done) {
  var xhr = new XMLHttpRequest();
  xhr.open(method, url);
  xhr.onload = function() { return new Promise().resolve(); };
  xhr.onerror = function() { return new Promise().reject(); };
  xhr.send();
}

makeXHRRequest('GET', 'http://example.com')
.then(function (datums) {
  console.log(datums);
});
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest promise

167
推荐指数
5
解决办法
7万
查看次数

JSHint"可能严格违规".当使用`bind`时

考虑这个简单的代码:

"use strict";

var obj = {
    f: function() {
        this.prop = 'value';
        g.bind( this )();
    }
};

function g() {
    console.log( this.prop );
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试验证此代码,jshint会Possible strict violation.在我调用时给出错误console.log( this.prop );.这是因为this在函数中严格模式下未定义.

但是我在调​​用它之前绑定了这个函数,所以它this是正确的对象.

我正在使用这种"设计模式"来避免使主要对象混乱.传递参数中的属性也会使函数混乱,所以我拒绝这样做.此外,这正是bind为了什么.

有没有办法让JSHint让我这样做?

javascript jshint

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

keypress和keyup - 为什么keyCode不同?

相关:JavaScript KeyCode与CharCode

这里有一些你可以在家里或在jsfiddle中尝试的代码:

el.addEventListener( 'keyup', function( e ) { 
    console.log( 'Keyup event' );
    console.log( e.keyCode );
} ); 
el.addEventListener( 'keypress', function( e ) { 
    console.log( 'Keypress event' );
    console.log( e.keyCode );
} );
Run Code Online (Sandbox Code Playgroud)

为什么keyCode不同?

我可以理解为什么人们只应该使用按键,但我不明白的是,在键盘上给出相同的按键时,两个按键事件如何给出不同的keyCodes.

PS:我并不担心遗留的浏览器支持,我在Chrome中尝试了这个并且感到惊讶,并且找不到解释.

javascript keyboard

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

检查node.js模块是否可用

我正在寻找一种方法来确定模块是否可用.

例如,我想以mongodb编程方式检查模块是否可用.

此外,如果找不到模块,它不应该暂停程序,我想自己处理.

PS:我添加了这个问题,因为谷歌没有帮助.

javascript node.js

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

使用document.querySelector进行非法调用

可能重复:
JavaScript函数别名似乎不起作用

相关jsfiddle:http://jsfiddle.net/cWCZs/1/

以下代码完美运行:

var qs = function( s ) {
    return document.querySelector( s );
};
qs( 'some selector' );
Run Code Online (Sandbox Code Playgroud)

但以下不是:

var qs = document.querySelector;
qs( 'some selector' ); // Uncaught TypeError: Illegal invocation
Run Code Online (Sandbox Code Playgroud)

我不明白为什么.

我的困惑来自于这样的事实:

function t() {
    console.log( 'hi' );
}
var s = t;
s(); // "hi"
Run Code Online (Sandbox Code Playgroud)

javascript dom

19
推荐指数
1
解决办法
2375
查看次数

与fs和蓝鸟的承诺

我目前正在学习如何在nodejs中使用promises

所以我的第一个挑战是列出目录中的文件,然后使用异步函数获取每个步骤的内容.我提出了以下解决方案,但有一种强烈的感觉,这不是最优雅的方式来做到这一点,尤其是我将异步方法"转变"为承诺的第一部分

// purpose is to get the contents of all files in a directory
// using the asynchronous methods fs.readdir() and fs.readFile()
// and chaining them via Promises using the bluebird promise library [1]
// [1] https://github.com/petkaantonov/bluebird 

var Promise = require("bluebird");
var fs = require("fs");
var directory = "templates"

// turn fs.readdir() into a Promise
var getFiles = function(name) {
    var promise = Promise.pending();

    fs.readdir(directory, function(err, list) {
        promise.fulfill(list)
    })

    return promise.promise;
}

// turn fs.readFile() into a Promise …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous fs node.js bluebird

19
推荐指数
1
解决办法
1万
查看次数

如何在querySelectorAll返回的伪数组上使用forEach?

漂亮的东西与普通的JavaScript将能够使用forEach,map,filter等,在项目返回的document.querySelectorAll,document.getElementsBy*等等.

这样可以减少对jQuery的依赖,并简化代码.现在,这就是我们如何以丑陋的方式做到这一点:

[].forEach.call( document.querySelectorAll(sel), function(el) {
});
Run Code Online (Sandbox Code Playgroud)

这是......详细.

任何方式能够立即使用forEach和喜欢的元素返回?

javascript dom

18
推荐指数
2
解决办法
5330
查看次数

HTML5输入属性,通过Javascript访问?

您可能知道,在HTML5规范中,我们为<input>元素提供了一些新属性,例如requiredpattern.这提供了验证用户输入的好方法,我们甚至可以使用CSS伪选择器对其进行可视化.例

HTML

<input type="number" pattern="\d+" required/>
Run Code Online (Sandbox Code Playgroud)

CSS

input:required:valid {
    border: 1px solid green;
}

input:required:invalid {
    border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)

如果该<input>元素是元素的一部分<form>,则用户将无法提交该元素invalid state.

但是,我的问题是,如果我们想要使用没有<form>元素的新属性会怎么样?有没有办法直接通过ECMAscript 访问这样一个节点的当前状态<input>

有什么事吗?有听众吗?

html javascript html5 css3

18
推荐指数
2
解决办法
1374
查看次数

Javascript删除android web浏览器上的cookie

什么是在Android网络浏览器上删除cookie的javascript.将cookie的过期日期设置为过去日期的常用方法在android Web浏览器中不起作用.

例如,以下代码适用于桌面Web浏览器和移动Safari,但在Android Web浏览器中不起作用.

document.cookie = 'cookiename=cookievalue; expires=Thu, 2 Aug 2001 20:47:11 UTC; path=/';
Run Code Online (Sandbox Code Playgroud)

javascript cookies android

15
推荐指数
1
解决办法
1982
查看次数

如何在轴世界上旋转一个物体three.js?

是否有可能轮换世界的轴而不是物体?

我需要做一些物体的旋转,但是在第一次旋转后,我不能像我想的那样做其他旋转.

如果无法在世界轴上进行旋转,我的第二个选择是在第一次旋转后重置轴.这有什么功能吗?

我无法使用,object.eulerOrder因为它在我object.eulerOrder="YZX"进行一些旋转后设置时会改变对象的方向.

javascript three.js

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