小编pim*_*vdb的帖子

这种行为有什么解释?(什么时候创建函数?)

有问题的代码很简单:

console.log("So it begins.");
foo();
function foo() { console.log("In foo()."); }
console.log("So it ends.");
Run Code Online (Sandbox Code Playgroud)

为什么foo()在定义之前执行(回顾性编辑:在Chrome和Safari中)?

我对此进行了修改,在Chrome,Safari和Firefox中测试了以下代码:

javascript:foo();function foo() { alert("Oh."); }
Run Code Online (Sandbox Code Playgroud)

Chrome和Safari中会显示提醒,而Firefox则保持静音.

这种令人惊讶的,不一致的行为有什么解释吗?

javascript function

5
推荐指数
2
解决办法
135
查看次数

重命名从 HTML5 画布创建的图像

我制作了一个简单的画布并将其另存为图像。我在这段代码的帮助下做到了这一点:

 var canvas = document.getElementById("mycanvas");
 var img    = canvas.toDataURL("image/png");
Run Code Online (Sandbox Code Playgroud)

并弹出创建的图像:

document.write('<img src="'+img+'"/>');
Run Code Online (Sandbox Code Playgroud)

但它的名字总是很奇怪。我想重命名图像名称faizan.jpg等。我该怎么做?

html javascript filenames data-url html5-canvas

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

HTML5:在带有控件的视频上放置画布

我想在 HTML5 视频上画东西。为此,我试图在 HTML5 视频元素上放置一个画布。

但是当我将画布放在视频元素上时出现问题,视频控件不起作用。由于画布获得了所有的鼠标悬停和点击事件。有没有办法将事件委托给视频控件或在其他地方显示控件?

任何帮助/想法都会很棒。

html javascript html5-video html5-canvas

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

使用原型的JavaScript中的类

我有一个问题,我想创建一个JavaScript类:

function Calculatore(txt,elements) {
    this.p= new Processor();
    this.output=txt;
    $(elements).click(this.clickHandler);   

}
Calculatore.prototype.clickHandler = function() {
var element=$(this);

// Code Here

// "this" contains the element.
// But what if I want to get the "output" var?
// I tried with Calculatore.prototype.output but no luck.

}
Run Code Online (Sandbox Code Playgroud)

那我怎么解决这个问题呢?

javascript jquery

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

如何用数组的值替换字符串中的问号?

给定字符串'Hello ?, welcome to ?'和数组['foo', 'bar'],如何'Hello foo, welcome to bar'使用JavaScript(可能使用jQuery,Underscore等)在单行代码中获取字符串?

javascript string jquery underscore.js

5
推荐指数
2
解决办法
5491
查看次数

如何使用 toDataURL 创建无损 WebP 图像?

我正在使用 canvas 元素在 Chrome 中尝试 WebP 图像格式。在 MDN 上,我看到它toDataURL接受代表结果图像质量的第二个参数。

我想生成画布元素的无损 WebP 图像。但是,如果我通过1质量测试(即 100%),我不会得到完全相同的像素。看起来它正在生成有损图像。

这是一个测试用例:http://jsfiddle.net/Nf5ve/1/。绘制PNG图像时,某个像素的某种颜色的值为40。在画布本身上绘制100%质量的WebP图像后,相同的值已更改为37。这对我来说似乎不是无损的,即使虽然我的质量通过了100%。

是否有可能toDataURL创建无损 WebP 图像?如果可以,如何创建?

html javascript google-chrome canvas webp

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

jQuery选择器按页面位置可用?

jQuery中是否有一个选择器可以选择具有页面特定位置的元素,例如所有offsetTop大于100px的元素?

我试过了:

$('span[offsetTop>100]')
Run Code Online (Sandbox Code Playgroud)

因为正如我们可以检查属性是否等于某个值,我认为可以检查属性是否大于某个值.但是,这不起作用.这有可能吗?

javascript jquery

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

在jQuery中,如何有效地添加大量元素?

我目前有一个真实的发电机草图.它工作正常,但速度很慢.我添加到<table>使用jQuery的每个布尔值组合.对于每个值,一个<td>元素由jQuery创建,然后添加到<table>.此外,我正在使用jQuery UI来获得漂亮的按钮而不是单选按钮.

在我发布的代码提取中,table是一个包含每个布尔组合的数组.也许我的代码有点难以理解,但它基本上归结为4个布尔变量(16种可能性),96个<td>元素是在添加了类和data属性集的情况下创建的.在第二部分中,创建三组三个单选按钮并将其转换为jQuery UI按钮组.

使用计时器我发现在所有东西都填满之前需要大约0.4秒.没有那么大的交易,但它肯定是显而易见的,并没有对用户产生积极的影响,因为每次他输入一个不同的布尔公式,它需要半秒钟加载.

$table = $('#table');
$.each(table, function(k, v) {
    $tr = $('<tr>').addClass('res').data('number', k);
    $.each(v[0], function(k2, v2) {
        $td = $('<td>').text(v2).addClass(v2 ? 'green notresult' : 'red notresult');
        for(var i = 0; i < 4; i++) {
            $td.data(i, i === k2);
        }
        $tr.append($td);
    });
    $tr.append($('<td>').addClass('spacing'));
    $table.append(
        $tr.append(
            $('<td>').text(v[1]).addClass(v[1] ? 'green result' : 'red result')
        )
    );
});

// ... here is some code that's not slowing down …
Run Code Online (Sandbox Code Playgroud)

javascript performance jquery dom

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

WebSockets握手后Chrome会断开连接

我试图让一个简单的WebSocket示例在我的机器上工作(localhost),我得到JavaScript和C#运行得很好并且连接,除了Chrome握手后断开连接.

我整个上午都在搜索,我认为它与相同的域策略有关,正如另一个"问题"所示,我已将浏览器更新到最新版本(12.xxx).

但是,我无法找到解决问题的方法.

我在C#端使用:

ConnectionOrigin = "http://localhost:8080";
ServerLocation = "ws://localhost:8181/test";
Run Code Online (Sandbox Code Playgroud)

我使用从磁盘直接打开的普通HTML文件(file:///在URL栏上)运行JavaScript .我也尝试过使用XAMPP在本地托管它,但我总是遇到同样的问题.

附加了C#程序的日志输出:

   New connection from 127.0.0.1:8181 requested. Handshaking ...
Reading handshake ...
GET /test HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8181
Origin: null
Sec-WebSocket-Key1: R 506   I   2D }6 qFB  G0`@88J? 4
Sec-WebSocket-Key2: y  20   8403!24  L 5 8

Sending handshake ...
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: http://localhost:8080
WebSocket-Location: ws://localhost:8181/test


New connection from 127.0.0.1:8181 established.
http://localhost:8080
Data …
Run Code Online (Sandbox Code Playgroud)

c# google-chrome websocket

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

Regexp欧洲价格

我测试了以下正则表达式的美国价格(分隔符逗号,分隔符点)运行正常:

 ^[1-9][0-9]{0,2}(?:,?[0-9]{3}){0,3}(\.[0-9]{2})?$
Run Code Online (Sandbox Code Playgroud)

它有效,30,000.000的价格被拒绝.只接受2位小数.

我试图交换它们来处理欧洲价格:

^[1-9][0-9]{0,2}(?:.?[0-9]{3}){0,3}(\,[0-9]{2})?$
Run Code Online (Sandbox Code Playgroud)

但它不起作用,接受30,000,000的价格,这是错误的.只接受2位小数.

这2个正则表达式有什么问题?

javascript regex

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