小编Dav*_*ing的帖子

使用//而不是prototcol

可能重复:
使用前导双斜杠继承URL中的协议是否有任何缺点?即src ="// domain.com"

我在许多地方看到了以下逻辑,f.ex分析脚本:

script.src = ('https:' == document.location.protocol ? 'https' : 'http') +
    '://example.com/cdn.js';
Run Code Online (Sandbox Code Playgroud)

但据我所知,您也可以这样做:

script.src = '//example.com/cdn.js';
Run Code Online (Sandbox Code Playgroud)

它应该使用当前使用的任何协议.或者我错过了什么?什么被认为是"最佳实践"?

我不是在寻找浏览器兼容性答案,谷歌已经建议//使用CDN脚本,所以在这里不应该这样.

这是一个小提琴,但它并没有说它似乎在这个设置中工作:http://jsfiddle.net/6ZGyb/

javascript jquery load protocols require

6
推荐指数
1
解决办法
275
查看次数

是否有一个规范ECMAScript 5的JavaScript项目

是否有一个JavaScript项目专注于普通浏览器中的原生标准化ECMAScript 5?

作为参考,规范化这样的表:http://kangax.github.com/es5-compat-table/

我知道有些包装器可以添加一些ES5功能,如果它们存在则可以回退到原生实现.但我还没有看到一个专注于本机实现和规范化的项目.有什么想法吗?

javascript ecmascript-5

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

骨干过滤

如果我有一个Backbone集合并想要创建该集合的副本并过滤掉某些条目,那么如何在将复制的实例保持为Backbone.Collection的同时执行此操作?

例:

var Module = Backbone.Model.extend();

var ModuleCollection = Backbone.Collection.?extend({
    model: Module
});

?var modules = new ModuleCollection;

?modules.add({foo: 'foo'??????},{foo: 'bar'});?????

console.log(modules instanceof Backbone.Collection); // true

var filtered = modules.filter(function(module) {
    return module.get('foo') == 'bar';
});

console.log(filtered instanceof Backbone.Collection); // false
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/m9eTY/

在上面的例子中,我想filtered成为模块的过滤版本,而不仅仅是模型数组.

本质上我想在集合实例中创建一个可以过滤掉某些模型并返回Backbone.Collection实例的方法,但是一旦我开始过滤,迭代方法就会返回一个数组.

javascript collections models backbone.js underscore.js

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

在调用apply之前是否有必要将参数转换为Array?

是否存在任何阻止我执行的浏览器限制或任何其他问题:

fn.apply(this, arguments);
Run Code Online (Sandbox Code Playgroud)

与:

fn.apply(this, Array.prototype.slice.call(arguments));
Run Code Online (Sandbox Code Playgroud)

我知道apply将"true" Array作为第二个参数,但传递一个参数集合似乎同样有效.要么...?

javascript arrays arguments apply

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

What does Object(this) do?

I noticed in several MDN Array method shims, such as this one on line 7, that they use the following syntax:

var t = Object(this);
Run Code Online (Sandbox Code Playgroud)

this数组在哪里.它不仅没有暗示我的验证器,我对它的作用也毫无头绪.

任何人都可以光明吗?

javascript constructor object shim

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

Firefox BUTTON子元素不伸缩

我在Firefox(最新版本)中遇到了问题.我需要在BUTTON元素中放置一个子元素,该元素在整个按钮上延伸.但我得到了这个:JSFIDDLE

在此输入图像描述

Chrome会显示它(我认为正确):

在此输入图像描述

这是CSS:

button{height:100px;background:orange;padding:0;border:none;}
button span{display:block;height:100%;background:red}
button::-moz-focus-inner {padding:0;margin:0}
Run Code Online (Sandbox Code Playgroud)

标记: <button><span>test</span></button>

的jsfiddle

css firefox button

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

如何在Chrome中控制Canvas fillText()的字体字距调整?

我正在尝试创建一个体面的跨浏览器渲染引擎的画布文本.我注意到kerning对在Chrome中无法正常呈现,但在Safari和Firefox中它们可以正常工作.

铬:

在此输入图像描述

火狐:

在此输入图像描述

苹果浏览器:

在此输入图像描述

试试这里的小提琴:http://jsfiddle.net/o1n5014u/

代码示例:

var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.font = "40px Arial";
ctx.fillText("VAVA Te", 10, 50);
Run Code Online (Sandbox Code Playgroud)

有没有人有任何解决方法?我找过bug报告,但找不到任何东西.

javascript fonts google-chrome canvas kerning

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

多个反应形式输入禁用onSubmit

我有一个非常简单的例子,按预期工作:https: //jsfiddle.net/x1suxu9h/

var Hello = React.createClass({
  getInitialState: function() {
    return { msg: '' }
  },
  onSubmit: function(e) {
    e.preventDefault();
    this.setState({ msg: 'submitted' })
  },
  render: function() {
    return (
      <form onSubmit={this.onSubmit}>
        <input type="text" />
        <div>{this.state.msg}</div>
      </form>
    )
  }
});
Run Code Online (Sandbox Code Playgroud)

但是,当添加另一个表单字段时,按下回车键时不再触发onSubmit:https://jsfiddle.net/nyvt6506/

var Hello = React.createClass({
  getInitialState: function() {
    return { msg: '' }
  },
  onSubmit: function(e) {
    e.preventDefault();
    this.setState({ msg: 'submitted' })
  },
  render: function() {
    return (
      <form onSubmit={this.onSubmit}>
        <input type="text" />
        <input type="text" …
Run Code Online (Sandbox Code Playgroud)

javascript forms reactjs

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

JavaScript构造函数

我试图掌握javascript构造函数,如果它们真的是只读的.这是一个简单的测试场景:

var A = function(){}

console.log( A.prototype.constructor == A ); //true
Run Code Online (Sandbox Code Playgroud)

所以在这一点上,每个新函数都会收到一个原型对象,其中包含构造函数作为参考.这一切都很好.现在考虑一下:

var B = function() {
    this.id = 0;
}

A.prototype.constructor = B; // what does this do with A?
Run Code Online (Sandbox Code Playgroud)

所以现在,A的每个实例都应该得到B作为构造函数:

var C = new A();

console.log(C.constructor == B) // true
Run Code Online (Sandbox Code Playgroud)

最后,这对每个实例都有实际影响吗?它似乎不是这样的:

console.log(C.id); // what will this yield?
Run Code Online (Sandbox Code Playgroud)

我的问题是:暴露构造函数引用的目的是什么?显然你可以设置/覆盖它,但除了更改引用之外它什么都不做.或者我错过了什么?

javascript oop constructor

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

从基于单个属性的数组中获取唯一对象

假设我们有以下内容:

node[1].name = "apple";
node[1].color = "red";
node[2].name = "cherry";
node[2].color = "red";
node[3].name = "apple";
node[3].color = "green";
node[4].name = "orange";
node[4].color = "orange;
Run Code Online (Sandbox Code Playgroud)

如果我使用jQuery.unique(节点),我将获得所有原始节点,因为它们都有不同的名称或颜色.我想要做的只是获取具有唯一名称的节点,该名称应返回

node[1] (apple)
node[2] (cherry)
node[4] (orange)
Run Code Online (Sandbox Code Playgroud)

它不应该返回3,因为它是相同的水果,即使我们有绿色和红色的苹果.

javascript arrays jquery unique object

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