Tag: JavaScript

什么时候。(成功,失败)认为是一个反模式的承诺?

我看了蓝鸟许诺常见问题 ,其中提到.then(success, fail)是一个反模式 。 对于尝试和捕捉我不太了解它的解释。 这是什么问题? some_promise_call() .then(function(res) { logger.log(res) }, function(err) { logger.log(err) }) 看来,这个例子是build议以下作为正确的方式。 some_promise_call() .then(function(res) { logger.log(res) }) .catch(function(err) { logger.log(err) }) 有什么不同?

检测未定义的对象属性

检查JavaScript中的对象属性是否未定义的最佳方法是什么?

如何强制浏览器重新加载caching的CSS / JS文件?

我注意到一些浏览器(特别是Firefox和Opera)非常热衷于使用.css和.js文件的caching副本,即使在浏览器会话之间。 当您更新这些文件中的一个时,这会导致问题,但用户的浏览器不断使用caching副本。 问题是:什么是最强大的方式强迫用户的浏览器重新加载文件时,它已经改变? 理想情况下,解决scheme不会强制浏览器在每次访问页面时重新加载文件。 我会张贴自己的解决scheme作为答案,但我很好奇,如果任何人有更好的解决scheme,我会让你的选票决定。 更新: 在经过一段时间的讨论之后,我发现John Millikin和Da5id的build议是有用的。 原来这里有一个术语: auto-versioning 。 我已经发布了一个新的答案,下面是我原来的解决scheme和约翰的build议的组合。 SCdF提出的另一个想法是将伪造的查询string追加到文件中。 (一些Python代码自动使用时间戳作为伪造查询string由pi提交)。 但是,关于浏览器是否会用查询stringcaching文件还有一些讨论。 (请记住,我们希望浏览器caching文件并在将来的访问中使用它,我们只希望在文件更改时再次获取文件。) 由于不清楚假冒的查询string会发生什么,我不接受这个答案。

如何暂时禁用滚动?

我正在使用scrollTo jQuery插件,并想知道是否有可能通过JavaScript暂时禁用窗口元素的滚动? 我想禁用滚动的原因是,当scrollToanimation时滚动,它变得非常丑陋;) 当然,我可以做一个$("body").css("overflow", "hidden"); 然后在animation停止时将其恢复为自动,但如果滚动条仍然可见但不活动,则会更好。

JavaScript中的函数expression式与声明之间有什么区别?

以下几行代码有什么区别? //Function declaration function foo() { return 5; } //Anonymous function expression var foo = function() { return 5; } //Named function expression var foo = function foo() { return 5; } 什么是命名/匿名函数expression式? 什么是声明的function? 浏览器如何处理这些结构的不同? 对类似问题( var functionName = function(){})对函数functionName(){} )的回应是不是完全正确?

如何检测Safari,Chrome,IE,Firefox和Opera浏览器?

我有5个插件/扩展FF,铬,IE浏览器,歌剧和Safari。 我需要的代码来识别用户浏览器和redirect(点击安装button)下载相应的插件。

使用JavaScript计算文字宽度

我想使用JavaScript来计算string的宽度。 这是可能的,而不必使用等宽字体? 如果它不是内置的,我唯一的想法是为每个字符创build一个宽度表,但是这是非常不合理的,特别是支持Unicode和不同types的大小(以及所有的浏览器)。

setTimeout或setInterval?

据我所知,这两个JavaScript的行为相同的方式: 选项A: function myTimeoutFunction() { doStuff(); setTimeout(myTimeoutFunction, 1000); } myTimeoutFunction(); 选项B: function myTimeoutFunction() { doStuff(); } myTimeoutFunction(); setInterval(myTimeoutFunction, 1000); 使用setTimeout和setInterval有什么区别吗?

如何创build和读取来自cookie的值?

如何在JavaScript中创build和读取cookie中的值?

如何用前导零填充一个值?

推荐使用JavaScript填充值的方法是什么? 我想我可以build立一个自定义的函数来填充一个typecasted值的零,但我想知道是否有一个更直接的方法来做到这一点? 注意: “zerofilled”的意思是数据库意义上的字(数字5的一个6位数的零填充表示将是“000005”)。