Chrome和Firefox都支持WebRTC.
Internet Explorer是否支持它?从哪个版本开始?
如果没有,是否有计划在未来支持它,如果有的话,何时?
使用像webrtc4all这样的项目提供支持 ,这是一个实用的解决方案吗?
更新:我现在在与WebRTC合作一年后.WebRTC不会也不会在IE上工作(第三方解决方案使其几乎不起作用,如果有的话,不应该依赖它).最好等待Edge重写为Chromium,此时将支持WebRTC.
我试图pointer-events: none通过JavaScript 设置div,但该属性未被应用.
我试过了:
document.getElementById("div").setAttribute("pointer-events", "none");
Run Code Online (Sandbox Code Playgroud)
和:
document.getElementById("div").style.pointer-events = "none";
Run Code Online (Sandbox Code Playgroud)
但是没有工作,有什么想法吗?
我尝试使用Angular和Bluebird的承诺:
HTML:
<body ng-app="HelloApp">
<div ng-controller="HomeController">{{name}} {{also}}</div>
</body>
Run Code Online (Sandbox Code Playgroud)
JS:
// javascript
var app = angular.module('HelloApp', []);
app.controller("HomeController", function ($scope) {
var p = Promise.delay(1000).then(function () {
$scope.name = "Bluebird!";
console.log("Here!", $scope.name);
}).then(function () {
$scope.also = "Promises";
});
$scope.name = "$q";
$scope.also = "promises";
});
window.app = app;
Run Code Online (Sandbox Code Playgroud)
[ 小提琴 ]
但是,不管我尝试了什么,它都会保持停留"$q promises"并且不会更新.除非我添加了一本$scope.$apply我宁愿避免使用的手册.
(我知道这是可能的,因为$ q会这样做)
我正在使用Bluebird 2.0,我在这里.
所以,我在定义什么new Object和Object做什么时看着ES5规范.出乎我的意料:
new Object描述了对象构造函数如何工作的整个算法 - 处理不同类型的值所发生的事情.基本上调用ToObject非对象 - 对象上的标识和构建在null和undefined上.Object在null和undefined中有一个特殊的第一步,它构建一个对象,然后调用对象ToObject上的基元和标识.在阅读了几次描述之后 - 它们看起来完全相同.但是,很明显,从规范中他们做了不同的事情.例如,在Array调用new Array中指定函数调用Array(…)等同于new Array(…)具有相同参数的对象创建表达式
那么 - 和之间有什么区别?为什么他们指定不同?new ObjectObject
XSLT和XSL-FO有什么区别?
我读过的每一个资源都像处理它们一样处理它们,或者至少非常紧密地绑定它们.
在JavaScript中,var声明在全局对象上创建属性:
var x = 15;
console.log(window.x); // logs 15 in browser
console.log(global.x); // logs 15 in Node.js
Run Code Online (Sandbox Code Playgroud)
ES6引入let了具有块范围的声明的词法作用域.
let x = 15;
{
let x = 14;
}
console.log(x); // logs 15;
Run Code Online (Sandbox Code Playgroud)
但是,这些声明是否在全局对象上创建属性?
let x = 15;
// what is this supposed to log in the browser according to ES6?
console.log(window.x); // 15 in Firefox
console.log(global.x); // undefined in Node.js with flag
Run Code Online (Sandbox Code Playgroud) 例如
p = new Promise(function (resolve, reject) {
throw 'err';
});
p.done();
Run Code Online (Sandbox Code Playgroud)
在大多数promise polyfill库中,done将抛出一个错误,当前执行将退出.
但如果我们使用p.then(),什么都不会发生.承诺吞噬了这个错误.如果我们使用p.catch,我们无法退出当前执行.我希望实现以下目标:
try {
// something
} catch (err) {
if (check(err)) {
throw err;
}
}
Run Code Online (Sandbox Code Playgroud) 随着jQuery延迟,我以前能够像这样检查当前状态:
var defer = $.Deferred();
defer.state(); //Returns the state of the deferred, eg 'resolved'
Run Code Online (Sandbox Code Playgroud)
Angular deferreds有没有办法做同样的事情?(甚至更好的承诺)
基于javascript原型的面向对象编程风格很有趣,但是在很多情况下你需要能够从类创建对象.
例如,在矢量绘图应用程序中,工作空间通常在绘图开始时为空:我无法从现有工作空间创建新的"行".更一般地说,动态创建对象的每种情况都需要使用类.
我已经阅读了很多教程和书"Javascript:好的部分",但在我看来,没有办法定义尊重1)封装的类和2)有效的成员方法声明(我的意思是:成员)正在定义的方法,并在每个类实例之间共享).
要定义私有变量,正在使用闭包:
function ClassA()
{
var value = 1;
this.getValue = function()
{
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是"ClassA"的每个实例都有自己的成员函数"getValue"的副本,这是无效的.
要有效地定义成员函数,正在使用原型:
function ClassB()
{
this.value = 1;
}
ClassB.prototype.getValue = function()
{
return this.value;
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是成员变量"value"是公共的.
我不认为这个问题可以轻易解决,因为在创建对象期间需要定义"私有"变量(以便对象可以访问其创建的上下文,而不暴露those值)而基于原型的成员函数定义必须在对象创建后完成,因此原型有意义("this.prototype"不存在,我已经检查过).
或者我错过了什么?
编辑:
首先,感谢您的有趣答案.
我只想为我的初始消息添加一点精度:
我真正想做的是拥有1)私有变量(封装是好的,因为人们只能访问他们需要的东西)和2)有效的成员方法声明(避免拷贝).
似乎简单的私有变量声明只能通过javascript中的闭包来实现,这就是为什么我专注于基于类的方法.如果有一种方法可以用基于原型的方法实现简单的私有变量声明,那对我来说没问题,我不是一个激烈的基于类的方法proponnent.
在阅读答案后,似乎简单的解决方案是忘记私有,并使用特殊的编码约定来阻止其他程序员直接访问"私有"变量...
我同意,我的标题/第一句话对于我想在这里讨论的问题有误导性.
所以.我在IE中正在开发BHO,我想添加一个像这样的浏览器动作:

在Internet Explorer中它看起来像

我发现的唯一教程和文档是创建工具栏项目.没有提到这个选项.我知道这是可能的,因为crossrider让你做到这一点.我只是不知道如何.
我找不到任何关于如何在BHO中实现这一点的文档.任何指针都非常受欢迎.
我用C#标记这个,因为C#解决方案可能更简单但是C++解决方案,或任何其他有效的解决方案也非常受欢迎.
javascript ×6
promise ×3
angularjs ×2
ecmascript-6 ×2
bho ×1
bluebird ×1
c# ×1
class ×1
css ×1
ecmascript-5 ×1
es6-promise ×1
jquery ×1
let ×1
oop ×1
private ×1
webrtc ×1
winapi ×1
xml ×1
xsl-fo ×1
xslt ×1