Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。


18
JavaScript的替代品
目前,唯一受完全支持的语言以及浏览器中用于DOM树操作的实际标准是JavaScript。看起来它具有深刻的设计问题,这使它成为了新手的漏洞和安全漏洞的雷区。 您是否知道存在任何现有或计划中的计划,以便在下一代浏览器中引入更好的(重新设计的)任何种类的语言(不仅是JavaScript)用于DOM树操作和HTTP请求?如果是,那么将其集成到Firefox中的路线图是什么?如果不是,出于什么原因(除了互操作性之外),JavaScript应该是浏览器平台上唯一受支持的语言吗? 我已经使用过jQuery,并且还阅读了“ javascript:好的部分”。确实,这些建议是好的,但是我无法理解的是:为什么只有javascript?在服务器端(您最喜欢的OS平台)上,我们可以使用每种语言(甚至是fortran)来操作DOM树。为什么客户端(浏览器平台)仅支持javascript?

22
打字稿:错误TS2693:“承诺”仅引用一种类型,但在此处用作值
我正在尝试将Typescript用于我的AWS Lambda,并且在我使用promise的地方都遇到以下错误。 错误TS2693:'Promise'仅指一种类型,但在此处被用作值。 我尝试在代码中使用以下变体 使用Promise构造函数 responsePromise = new Promise((resolve, reject) => { return reject(new Error(`missing is needed data`)) }) 使用Promise.reject responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`)); 版本号 以下是我的开发依赖项中的版本: "typescript": "^2.2.2" "@types/aws-lambda": "0.0.9", "@types/core-js": "^0.9.40", "@types/node": "^7.0.12", tsconfig.json的内容 { "compileOnSave": true, "compilerOptions": { "module": "commonjs", // "typeRoots" : ["./typings", "./node_modules/@types"], "target": …

26
如何防止触摸设备上按钮的粘滞悬停效果
我创建了一个带有始终可见的上一个和下一个按钮的轮播。这些按钮处于悬停状态,它们变为蓝色。在诸如iPad的触摸设备上,悬停状态为粘滞状态,因此在点击它后按钮保持蓝色。我不要 我可以为每个按钮添加一个no-hover类ontouchend,并使CSS像这样:button:not(.no-hover):hover { background-color: blue; }但这可能会降低性能,并且不能正确处理Chromebook Pixel(具有触摸屏和鼠标)之类的设备。 我可以向中添加一个touch类documentElement,并使CSS像这样:html:not(.touch) button:hover { background-color: blue; }但是,这在同时带有触摸和鼠标的设备上也无法正常工作。 我更希望删除悬停状态ontouchend。但这似乎是不可能的。聚焦另一个元素不会删除悬停状态。手动点击另一个元素可以,但是我似乎无法在JavaScript中触发它。 我发现的所有解决方案似乎都不完美。有没有完美的解决方案?
144 javascript  css  hover  touch 


21
如何关闭外部点击的下拉菜单?
当用户单击下拉菜单之外的任何地方时,我想关闭我的登录菜单下拉菜单,我想使用Angular2和Angular2“方法”来完成此操作... 我已经实施了一个解决方案,但是我对此确实没有信心。我认为必须有一种最简单的方法来获得相同的结果,因此,如果您有任何想法...让我们讨论一下:)! 这是我的实现: 下拉组件: 这是我的下拉菜单的组件: 每次将此组件设置为可见时,(例如:当用户单击按钮以显示它时)它将订阅存储在SubjectsService中的“全局” rxjs主题userMenu。 每次隐藏时,它都会退订该主题。 该组件模板内任何位置的每次点击都会触发onClick()方法,该方法只会停止将事件冒泡到顶部(和应用程序组件) 这是代码 export class UserMenuComponent { _isVisible: boolean = false; _subscriptions: Subscription<any> = null; constructor(public subjects: SubjectsService) { } onClick(event) { event.stopPropagation(); } set isVisible(v) { if( v ){ setTimeout( () => { this._subscriptions = this.subjects.userMenu.subscribe((e) => { this.isVisible = false; }) …

14
在if语句中的布尔值
今天,我考虑到我在学校作业中检查变量是对还是错的方式,对代码进行了评论。 我写的代码是这样的: var booleanValue = true; function someFunction(){ if(booleanValue === true){ return "something"; } } 他们说最好这样写: var booleanValue = true; function someFunction(){ if(booleanValue){ return "something"; } } 我对“ === true”部分的评论是,它不是必需的,并且可能引起混乱。 但是我的想法是,最好检查变量是否为布尔值,尤其是因为Javascript是一种松散类型的语言。 在第二个示例中,字符串也将返回“ something”。 所以我的问题;将来松散“ === true”部分是否更整洁,还是检查变量类型的好习惯? 编辑: 在我的“真实”代码中,布尔值表示是否已删除图像,因此boolValue唯一应具有的值是true或false。 例如,0和1不应在该变量中。

11
从浏览器下载JSON对象作为文件
我有以下代码,可让用户下载csv文件中的数据字符串。 exportData = 'data:text/csv;charset=utf-8,'; exportData += 'some csv strings'; encodedUri = encodeURI(exportData); newWindow = window.open(encodedUri); 如果客户端运行代码,它将生成空白页并开始下载csv文件中的数据,效果很好。 所以我试图用JSON对象来做到这一点 exportData = 'data:text/json;charset=utf-8,'; exportData += escape(JSON.stringify(jsonObject)); encodedUri = encodeURI(exportData); newWindow = window.open(encodedUri); 但是我只看到一个页面,上面显示了JSON数据,没有下载它。 我进行了一些研究,并且该研究声称可以工作,但是我的代码没有任何区别。 我在代码中缺少什么吗? 感谢您阅读我的问题:)
144 javascript  json 

8
将多个事件绑定到侦听器(没有JQuery)?
在处理浏览器事件时,我已经开始将Safari的touchEvents集成到移动设备中。我发现addEventListeners与条件堆叠在一起。该项目不能使用JQuery。 标准事件侦听器: /* option 1 */ window.addEventListener('mousemove', this.mouseMoveHandler, false); window.addEventListener('touchmove', this.mouseMoveHandler, false); /* option 2, only enables the required event */ var isTouchEnabled = window.Touch || false; window.addEventListener(isTouchEnabled ? 'touchmove' : 'mousemove', this.mouseMoveHandler, false); jQuery bind允许多个事件,如下所示: $(window).bind('mousemove touchmove', function(e) { //do something; }); 是否有办法像JQuery示例中那样组合两个事件侦听器?例如: window.addEventListener('mousemove touchmove', this.mouseMoveHandler, false); 任何建议或提示,不胜感激!

3
HTTP内容类型标头和JSON
为了避免未知,我一直试图避免使用大多数HTTP协议的属性。 但是,我对自己说,我今天将面对恐惧并开始有目的地使用标题。我一直在尝试将json数据发送到浏览器并立即使用。例如,如果我有一个处于就绪状态4的Ajax处理程序函数,如下所示: function ajaxHandler(response){ alert(response.text); } 并且我在PHP代码中设置了content-type标头: header('Content-Type: application/json'); echo json_encode(array('text' => 'omrele')); 当清楚地告诉浏览器传入数据为时,为什么不能直接从处理程序函数访问该属性application/json?
144 javascript  php  json  http 

7
如何检查数字是否在两个值之间?
在JavaScript中,如果窗口大小大于500px,我要告诉浏览器执行某些操作。我这样做是这样的: if (windowsize > 500) { // do this } 这很好用,但是我想使用相同的方法,但是要有一定范围的数字。所以我想告诉我的浏览器在窗口大小介于500px和600px之间时做些什么。我知道这行不通,但是这是我的想象: if (windowsize > 500-600) { // do this } 在JavaScript中甚至可能吗?
144 javascript 

8
JavaScript中的数组效率与对象效率
我有一个可能包含数千个对象的模型。我想知道什么是最有效的方式来存储它们并在获得ID后检索单个对象。ID是长数字。 这些是我正在考虑的两个选项。在选项一中,它是一个带有递增索引的简单数组。在选项2中,如果有区别,它是一个关联数组,也可能是一个对象。我的问题是,当我主要需要检索单个对象时,有时又遍历它们并进行排序时,哪一个效率更高。 具有非关联数组的选项一: var a = [{id: 29938, name: 'name1'}, {id: 32994, name: 'name1'}]; function getObject(id) { for (var i=0; i < a.length; i++) { if (a[i].id == id) return a[i]; } } 选项2与关联数组: var a = []; // maybe {} makes a difference? a[29938] = {id: 29938, name: 'name1'}; …

18
如何仅使用JavaScript获取当前时间
如何获取JavaScript中的当前时间并将其用于时间选择器? 我尝试var x = Date()并得到: 2012年5月15日星期二05:45:40 GMT-0500 但是例如,我只需要当前时间, 05:45 如何将其分配给变量?


3
JSDoc:返回对象结构
如何将返回的对象的结构告诉JSDoc。我找到了@return {{field1: type, field2: type, ...}} description语法并尝试了它: /** * Returns a coordinate from a given mouse or touch event * @param {TouchEvent|MouseEvent|jQuery.Event} e * A valid mouse or touch event or a jQuery event wrapping such an * event. * @param {string} [type="page"] * A string representing the type of …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.