Questions tagged «javascript»

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


1
永远不会解决的承诺会导致内存泄漏吗?
我有一个Promise。我创建它是为了取消AJAX请求(如果需要)。但是由于我不需要取消该AJAX,因此我从未解决过该问题,因此AJAX成功完成了。 简化的代码段: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't need to cancel that ajax. What happens to this promise after request? 永远不会解决那样的承诺会导致内存泄漏吗?您对如何管理Promise生命周期有任何建议吗?


2
更改textNode值
有什么方法可以在Web浏览器中更改DOM textNode的值吗? 我特别想看看是否可以更改现有节点,而不是创建一个新节点。 为了澄清,我需要使用Javascript来做到这一点。浏览器中的所有文本都存储在#textNodes中,它们是其他HTML节点的子节点,但不能拥有自己的子节点。 如下所述,可以通过设置这些对象的nodeValue属性来更改内容。
91 javascript  dom  dhtml 

13
检查钥匙是否按下?
有没有一种方法可以检测JavaScript中当前是否存在某个键? 我知道“ keydown”事件,但这不是我所需要的。按下按键后的一段时间,我希望能够检测到是否仍在按下。 PS最大的问题似乎是在一段时间后,密钥开始重复,触发了诸如恶魔般的keydown和keyup事件。希望只有一个简单的isKeyDown(key)函数,但是如果没有,则需要解决/解决此问题。


10
为什么节点列表没有forEach?
我当时正在编写一个简短的脚本来更改<abbr>元素的内部文本,但是发现它nodelist没有forEach方法。我知道那nodelist不是继承自Array,但似乎不是forEach一种有用的方法吗?是否有一个具体的实施问题,我不知道阻止添加的forEach到nodelist? 注意:我知道Dojo和jQuery forEach的节点列表都有某种形式。由于限制,我无法使用任何一个。

2
使用节点child_process的标准输出缓冲区问题
我正在尝试使用节点child_process执行curl以从本地网络中的共享文件夹获取JSON文件(约220Ko)。但是它实际上返回了一个我无法解决的缓冲区问题。这是我的代码: var exec = require('child_process').exec; var execute = function(command, callback){ exec(command, function(error, stdout, stderr){ callback(error, stdout); }); }; execute("curl http://" + ip + "/file.json", function(err, json, outerr) { if(err) throw err; console.log(json); }) 这是我得到的错误: if(err) throw err; ^ Error: stdout maxBuffer exceeded. at Socket.<anonymous> (child_process.js:678:13) at Socket.EventEmitter.emit (events.js:95:17) at Socket.<anonymous> …

6
CSS过渡不适用于上,下,左,右
我有风格的元素 position: relative; transition: all 2s ease 0s; 然后,我想在单击后平滑地更改其位置,但是当我添加样式更改时,过渡不会发生,而是元素立即移动。 $$('.omre')[0].on('click',function(){ $$(this).style({top:'200px'}); }); 但是color,例如,如果我更改属性,则它会平滑更改。 $$('.omre')[0].on('click',function(){ $$(this).style({color:'red'}); }); 这可能是什么原因?是否有非“过渡性”的属性? 编辑:我想我应该提到这不是jQuery,它是另一个库。该代码似乎按预期工作,添加了样式,但是过渡仅在第二种情况下有效?

8
jQuery Ajax-进行Ajax调用时如何检测网络连接错误
我有一些Javascript JQuery代码,每5分钟对服务器执行Ajax调用,这是为了保持服务器会话活动并保持用户登录。我$.ajax()在JQuery中使用方法。如果用户的互联网连接断开,以便KeepAlive脚本继续运行,则该函数似乎具有“错误”属性,我正在尝试使用该属性。我正在使用以下代码: var keepAliveTimeout = 1000 * 10; function keepSessionAlive() { $.ajax( { type: 'GET', url: 'http://www.mywebapp.com/keepAlive', success: function(data) { alert('Success'); setTimeout(function() { keepSessionAlive(); }, keepAliveTimeout); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert('Failure'); setTimeout(function() { keepSessionAlive(); }, keepAliveTimeout); } }); } 当我运行它时,每隔10秒,我将在警报框中的屏幕上显示“成功”弹出窗口,这很好。但是,一旦拔下网络电缆,我什么也没得到,我期望调用错误函数并看到“失败”警报框,但是什么也没有发生。 我是否假设“错误”功能仅适用于从服务器返回的非“ 200”状态代码,我是否正确?进行Ajax调用时,是否可以检测网络连接问题?

2
如何通过setTimeout做出承诺
这不是现实问题,我只是想了解如何创建承诺。 我需要了解如何对不返回任何内容的函数(例如setTimeout)作出承诺。 假设我有: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); 如何创建async可以在setTimeout准备就绪后返回的承诺callback()? 我以为包装会带我到某处: function setTimeoutReturnPromise(){ function promise(){} promise.prototype.then = function() { console.log('timed out'); }; setTimeout(function(){ return ??? },2000); return promise; } 但是我不能不考虑这个。

5
不推荐使用KeyboardEvent.keyCode。实际上这是什么意思?
根据MDN,我们绝对应该不使用该.keyCode属性。不推荐使用: https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/keyCode 在W3学校中,这个事实被淡化了,只有一个旁注,.keyCode即提供该注释仅是为了兼容性,并且最新版本的DOM Events Specification建议使用该.key属性。 问题是.key浏览器不支持,那么我们应该使用什么呢?有什么我想念的吗?

6
单击时平滑滚动到特定div
我正在尝试做的是使它成为可能,如果您单击一个按钮,它将向下(平滑地)滚动到页面上的特定div。 我需要的是,如果单击该按钮,它将平滑滚动到div的“ second”。 .first { width: 100%; height: 1000px; background: #ccc; } .second { width: 100%; height: 1000px; background: #999; } <div class="first"><button type="button">Click Me!</button></div> <div class="second">Hi</div> 运行代码段隐藏结果展开摘要

5
带有Infowindows的Google Maps API多个标记
我试图添加多个标记,每个标记都有其自己的信息窗口,这些标记会在单击时出现。我在启动信息窗口时遇到麻烦,当我尝试它时,只显示一个标记而没有信息窗口。 谢谢,让我知道您是否需要更多信息 <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> <style type="text/css"> html { height: 100% } body { height: 100%; margin: 0; padding: 0 } #map_canvas { height: 100% } </style> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyB1tbIAqN0XqcgTR1-FxYoVTVq6Is6lD98&sensor=false"> </script> <script type="text/javascript"> var locations = [ ['loan 1', 33.890542, 151.274856, 'address 1'], ['loan 2', 33.923036, 151.259052, 'address 2'], …

14
Javascript使用变量作为对象名称
我想使用变量的值来访问对象。 假设我有一个名为myobject的对象。 我想用此名称填充变量,然后使用该变量访问对象。 例: var objname = 'myobject'; {objname}.value = 'value';
91 javascript 

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.