小编Col*_*der的帖子

.toString(16)总是返回小写吗?

使用时将十进制数转换为10以上的基数.toString(base),似乎我总是得到一个小写字符串.我可以依靠吗?大写字符串是正确的,但需要转换为我的应用程序.

引用定义此规范的部分(我看起来也找不到它)以及任何反例(返回大写的浏览器)的额外功劳.

例:

(12648430).toString(16) // returns: "c0ffee". Not "C0FFEE"
Run Code Online (Sandbox Code Playgroud)

javascript tostring

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

将代码附加到现有函数的末尾

我需要在函数foo()触发时触发函数bar().我无法控制函数foo或将来是否会改变.我经常有这种情况(我讨厌它).

我写了这个函数来将我的代码添加到函数foo的末尾:

function appendToFunction(fn,code){ 
if(typeof fn == 'function'){
    var fnCode = fn.toString() ;
    fnCode = fnCode.replace(/\}$/,code+"\n}") ;
    window.eval(fnCode);                    // Global scope
    return true ;
}
else{
    return false ;
}
}
Run Code Online (Sandbox Code Playgroud)

例如:

appendToFunction(foo,"bar();");
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个可怕的想法 - 但它确实有效.有人可以指出我更好(更安全)的方向.

编辑:foo不是一个特定的功能,但我最终处理的许多功能.它们不会在页面中动态更改.但它们可能会不时地改变(例如,形式验证要求).

解决方案:我选择了Adam的答案的修改版本.它并不完美,但它比我的更好:

var oldFoo = foo ;
foo = function(){
        var result = oldFoo.apply(this, arguments);
        bar();
        return result ;
}
Run Code Online (Sandbox Code Playgroud)

NB.注意IE6/7中没有.apply()方法的一些本机函数.

javascript eval

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

如果没有匹配,替换会怎么做?(引擎盖下)

我有很长的字符串,如果出现,需要删除一个模式.但它出现在字符串中是一个非常罕见的边缘情况.

如果我这样做:

str = str.replace("pattern", "");
Run Code Online (Sandbox Code Playgroud)

然后看起来我正在创建一个新字符串(因为Java字符串是不可变的),如果原始字符串很好,这将是一种浪费.我应该首先检查匹配,然后只有在找到匹配时才更换?

java regex string performance replace

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

*this*优于event.target

在事件监听器中使用this或更好/更快event.target

我一直在编写这样的代码(例子是jQuery):

jQuery('input').bind('keyup', function (e) {
 var j = jQuery(e.target);
 foo(j.attr('id') , j.val() );
});
Run Code Online (Sandbox Code Playgroud)

我被告知要更换e.target,this因为它"更好".这个或那个真的有什么优势吗?

我使用target是因为它适用于委派事件,因此它是一种更通用的解决方案.我在基准测试时遇到了麻烦,因为我的测试结果很混乱(尽管很明显,在这种情况下,差异太小而无关紧要)

javascript optimization jquery

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

Firefox何时更改其Function.prototype.toString()行为?

如今,当您调用函数时.toString(),浏览器会返回函数的原始声明.

但我记得Firefox过去常常返回优化版本,例如.

function fn() {
    return 2+3;
}
fn.toString() // Used to give: function fn() {return 5;}
Run Code Online (Sandbox Code Playgroud)

在哪些浏览器上使用此功能是安全的?

javascript firefox tostring

9
推荐指数
1
解决办法
89
查看次数

听取密码揭示事件

IE10有一项功能,只需点击一下按钮即可显示密码字段的内容.有没有办法检测到这种情况发生了?

当然,我可以回过头来寻找点击我期望按钮的位置,但这并不理想.

javascript passwords internet-explorer-10

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

返回匹配的正则表达式的部分

在使用OR(管道)的正则表达式中,有一种方便的方法来获取匹配的表达式部分.

例:

/horse|caMel|TORTOISe/i.exec("Camel");
Run Code Online (Sandbox Code Playgroud)

回报Camel.我想要的是caMel.

我知道我可以遍历选项而不是使用一个大的正则表达式; 这会更有意义.但我很想知道它是否可以这样做.

javascript regex

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

为什么CORS默认阻止自定义标头?

我假设在cors请求中默认阻止自定义标头是为了防止某种攻击.

这个假设是否正确?如果是这样,那攻击是什么?


来自https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/OPTIONS

在CORS中,发送带有OPTIONS方法的预检请求,以便服务器可以响应是否可以使用这些参数发送请求.Access-Control-Request-Method标头作为预检请求的一部分通知服务器,当发送实际请求时,它将使用POST请求方法发送.

javascript security cors

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

ExternalInterface.call有效,但javascript无法访问actionscript回调?

在网页中,javascript和as3的设置如下:

  1. Javascript在页面中加载swf.
  2. swf电话 ExternalInterface.call("javascriptFunctionName", "");
  3. Javascript javascriptFunctionName()使用由ExternalInterface.addCallback设置的actionscript函数

目前,javascriptFunctionName()首先检查它是否可以访问actionscript的回调函数.

这项检查是否必要?或者actionscript设法调用javascript函数的事实是否表明授予了访问权限?

编辑:更具体地说,我的代码有效.我担心它可能会放在具有不同权限的第三方页面中.

javascript actionscript actionscript-3

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