小编ste*_*and的帖子

为什么Grunt不会将自己添加到shell中?

我在安装grunt时遇到问题.所有文档和博客文章教程都说运行:

npm install -g grunt
Run Code Online (Sandbox Code Playgroud)

然后允许你从终端运行grunt命令.

我有一种情况,grunt似乎安装没有错误,但在终端中输入命令grunt仍然给出:

-bash: grunt: command not found
Run Code Online (Sandbox Code Playgroud)

我能做错什么?我在哪里可以找到grunt手动将它添加到我的BASH配置文件中?

macos gruntjs

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

是否可以使用HTML的.querySelector()在SVG中通过xlink属性进行选择?

鉴于:

<body>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
        <a xlink:href="url"></a>
    </svg>
</body>
Run Code Online (Sandbox Code Playgroud)

是否可以使用HTML DOM .querySelector().querySelectorAll()通过其xlink:href属性的内容选择SVG内的链接?

这有效:

document.querySelector('a')                    // <a xlink:href="url"/>
Run Code Online (Sandbox Code Playgroud)

这些不是:

document.querySelector('[href="url"]')         // null
document.querySelector('[xlink:href="url"]')   // Error: not a valid selector
document.querySelector('[xlink\:href="url"]')  // Error: not a valid selector
document.querySelector('[xlink\\:href="url"]') // null
Run Code Online (Sandbox Code Playgroud)

有没有办法编写该属性选择器,使其"看到" xlink:href

javascript html5 svg dom xlink

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

向DOM Element对象添加属性有什么问题?

我一直在寻找一个直接的答案(我可以想到很多可能性,但我想知道真正的原因):

jQuery提供了一个.data()方法,用于将数据与DOM Element对象相关联.是什么让这有必要?将属性(或方法)直接添加到DOM元素对象是否有问题?它是什么?

javascript dom object

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

如何阅读浏览器不支持的CSS属性?

今天很偶然,我发现在IE6,IE7和IE8中,可以使用jQuery的.css()方法读取不支持的CSS属性:

jQuery(node).css('transition');   // Returns the transition value 
Run Code Online (Sandbox Code Playgroud)

这允许我在我的jQuery插件jquery.transitions(github.com/stephband/jquery.transitions)中为这些浏览器添加CSS3过渡的动画回退.喜悦.

问题是:是否可以在其他浏览器中读取不受支持的CSS属性?我在FF3.6和IE9中使用上述方法的初步测试没有结果.有没有其他方法,没有解析样式表?

javascript jquery dom stylesheet css3

19
推荐指数
3
解决办法
1614
查看次数

使用AMD模块,何时(或为什么)可以在define()中使用require()?

我对AMD模块的理解(使用例如RequireJs或curl.js)是:

require() 用于异步加载不同的模块,加载后执行回调fn.

要定义模块,您可以使用单独的脚本 define()

但我已经看到一些模块require()在其函数定义中使用,例如

define([a, b, c], function(i, ii, iii){ 
    require([d, e, f], function(d, e, f) {
        // do some stuff with these require()'d dependancies
    })
    /* rest of the code for this module */ 
}) 
Run Code Online (Sandbox Code Playgroud)

但我发现这令人困惑,因为我认为如果一个模块具有依赖性,那么它们应该通过main define([dependancies], fnDefinition)函数传递,而不是通过require()上面的例子来实现.

这背后有理由吗?

requirejs js-amd curljs

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

为什么Object.defineProperty可以使ES6符号属性可枚举?

在ES6中,属性可以定义为符号属性:

var symbol = Symbol();
var object = {};
object[symbol] = 'value';
Run Code Online (Sandbox Code Playgroud)

MDN将可枚举属性定义为"可以通过for..in循环迭代的属性"(1).符号属性永远不会被for ... in循环迭代,因此它们可以被认为是不可枚举的(2).

那么,你能做到这一点是否有意义:

Object.defineProperty(object, symbol, {
    value: 'value',
    enumerable: true
});
Run Code Online (Sandbox Code Playgroud)

并且查询对象的描述符确实确认了这个属性是可枚举的:

Object.getOwnPropertyDescriptor(object, symbol)
// -> { enumerable: true }
Run Code Online (Sandbox Code Playgroud)

为什么?这有什么用?

(1)https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties

(2)for ... in uses [[Enumerate]],仅包含字符串键.由于我们有符号属性,因此可能应该更改MDN上的定义.

javascript ecmascript-6

17
推荐指数
2
解决办法
1622
查看次数

你能检测到dom节点的样式何时设置为'auto'?

使用示例CSS:

.thing { height: auto }
Run Code Online (Sandbox Code Playgroud)

和HTML:

<div class="thing">The quick brown fox jumps over a lazy dog.</div>
Run Code Online (Sandbox Code Playgroud)

是否有可能检测到.thing的高度设置为'auto'?

以下方法返回值:

jQuery('.thing').height()        // n
jQuery('.thing').css('height')   // 'npx'
getComputedStyle(node).height    // 'npx'
Run Code Online (Sandbox Code Playgroud)

是否有任何方法可以告诉我浏览器正在从'auto'计算这些值?

javascript css jquery dom

14
推荐指数
1
解决办法
814
查看次数

如何防止移动浏览器中的模拟鼠标事件?

移动浏览器模拟鼠标事件,以支持仅将处理程序附加到鼠标事件的网站.但是,如果要实现两个交互模型 - 一个用于鼠标事件,一个用于触摸事件 - 那么防止浏览器模拟鼠标事件会很有帮助.

在iOS Safari上,这非常简单 - 只需在touchend上运行preventDefault:

jQuery(document).on('touchend', function(e) {
  // Do some logic      
  e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

这很理智.不幸的是,Android的默认浏览器和Dolfin都没有使用这种技术取消鼠标模拟.(当touchDefault在touchstart上运行时,Dolfin将取消mousedown - 但这不是很有帮助,因为你不知道手指将在touchstart上采取什么动作.)

有没有其他方式有条件地,甚至没有条件地阻止模拟鼠标事件发射?

[编辑]

为了更好地理解问题,我在以下网址开始了触摸事件兼容性表:http://labs.cruncher.ch/touch-events-compatibility-table/

javascript browser events dom touch

10
推荐指数
1
解决办法
2440
查看次数

使用WebAudio API访问音频接口的所有输入通道?

我正在尝试访问附加的多输入音频接口的所有音频通道。我知道使用MediaStream创建通道后,该通道应该由MediaStreamAudioSourceNode节点公开:

navigator.getUserMedia({ audio: true }, function(stream) {
    var input = audio.createMediaStreamSource(stream);
    console.log(input.channelCount);
});
Run Code Online (Sandbox Code Playgroud)

问题是无论选择哪个设备作为用户媒体源,input.channelCount始终为2。Chrome和FireFox确实如此。

Media Capture and Streams规范指出:

单个MediaStreamTrack可以表示多声道内容,例如立体声或5.1音频或立体视频,其中声道之间具有明确定义的关系。关于频道的信息可能会通过其他API(例如[WEBAUDIO])公开,但是此规范不提供对频道的直接访问。

http://w3c.github.io/mediacapture-main/getusermedia.html#introduction

这表明没有办法通过getUserMedia调用来影响通道数量(除非我缺少一些特殊的约束参数)。

MediaStreamAudioSourceNode的WebAudio规范指出:

MediaStream中的第一个AudioMediaStreamTrack将用作音频源。[...]输出的通道数与AudioMediaStreamTrack的通道数相对应。

http://webaudio.github.io/web-audio-api/#MediaStreamAudioSourceNode

当我检查getUserMedia创建的流时,它只有一个轨道。据我所知,不可能检查该曲目的频道数量。因此,似乎:

  1. getUserMedia仅将来自连接的设备的前两个音频流传输到单个MediaStreamTrack。

  2. MediaStreamAudioSourceNode除了忽略MediaStreamTrack中的前两个通道外,还忽略了其他任何内容。

有人对此问题有更多信息吗?我想念什么吗?它执行不正确吗?我们如何去解决它?

javascript audio web-audio-api

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

JavaScript:构造函数可以创建documentElement对象吗?

我想创建一个构造函数来创建一个documentElement对象.

作为一个例子,考虑新的Audio()构造函数 - 它创建一个documentElement对象,如果你传递一些变量,它会用属性填充新的documentElement.它不会将它插入DOM,它只是创建对象.

所以,问题是 - 是什么让documentElement与一个vanilla javascript对象({property:value}类型)不同,你能为对象编写构造函数吗?

编辑:

我正在使用的是在没有它的浏览器中重新创建新的Audio()构造函数,使用quicktime或flash HTMLObjectElement代替HTMLAudioElement.

我可以认为audio.constructor将引用HTMLObjectElement,因为在支持它的浏览器中使用新的Audio(),audio.constructor引用HTMLAudioElement.

我不确定Audio.prototype.当我在具有音频支持的浏览器中查询console.log(Audio.prototype)时,它们根本不返回任何内容 - 甚至在console.log中都没有空行 - 所以这让我感到难过.但是,如果我理解正确,它不会影响我的目标.

目的是能够使用Audio构造函数进行编码,并让浏览器本地处理它,或者在需要时设置插件实例.

javascript constructor dom functional-programming

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