如果我有一个数组[1, 2, 3, 5, 2, 8, 9, 2] ,我想检查数组中有多less个2 。 什么是最优雅的方式来做,而不循环for循环的JavaScript?
我正在尝试使用Backbone.Paginator.js在同一页面上运行多个应用程序(paginator的多个实例)。 我创build了一个testing页面。 (导航到backbone.paginator/examples/netflix-infinite-paging )。 我离开了app.js的代码,并创build了app2.js ,这是app.js一个克隆,但是所有的javascript代码都位于一个文件中,并且应用程序已经被重命名为app2。 两个实例工作在页面的第一次加载,但随后的请求/刷新只加载app2.js的数据。 是否有可能在同一页面上运行多个实例? 我有兴趣使用自动分页(无限/无限滚动),所以我试图使用保罗爱尔兰的jQuery Infinite Scroll plugin但我无法得到它的工作。 我正在启动插件以在文档就绪(这不起作用,如预期的那样)上运行,但是也在app2的ResultView中运行代码,这不起作用。 任何想法如何获得自动分页无限滚动解决scheme? 我跑到https://github.com/joneath/infiniScroll.js,但我不知道如何将其与Backbone.Paginator.js集成。 我仍然在学习,任何帮助将不胜感激! 🙂 更新:经过不同浏览器的进一步testing,似乎问题可能是caching问题/差异。 例如,在Safari中,刷新页面时有时(随机)有效。 我不知道如何debugging。 有任何想法吗?
我正在开发一个手机银行应用程序,我有兴趣实时格式化货币数量input。 我已经testing了autoNumeric插件和jQuery格式的货币插件,但都在Android 2. *浏览器上有光标位置问题。 有没有人有一个JavaScript解决scheme兼容这个浏览器?
我有一个非常具体的问题。 我正在写一个手机的网页,上面有一个button。 我在包括IE浏览器在内的所有浏览器上都检测到touchevent ,但是在IE浏览器上它非常具体。 几秒钟后自动结束。 你能以某种方式帮助我吗? 这里是我的代码(修改一个,但仍然不能正常工作): if (window.navigator.pointerEnabled) { tapButton.addEventListener("pointerup", function(e) { e.preventDefault(); addClass(this, 'clicked'); buttonTouched = true; }, false); tapButton.addEventListener("pointerdown", function(e) { e.preventDefault(); removeClass(this, 'clicked'); buttonTouched = false; }, false); alert("pointerEnabled"); } else if (window.navigator.msPointerEnabled) { tapButton.addEventListener("MSPointerDown", function(e) { e.preventDefault(); addClass(this, 'clicked'); buttonTouched = true; }, false); tapButton.addEventListener("MSPointerUp", function(e) { e.preventDefault(); removeClass(this, 'clicked'); […]
我一直在试图根据这篇文章呈现某个与状态和组件相关的模板 在我的项目下运行dev-server它一切正常,当我执行$state.go("home")组件模板加载我期望,但是当我在testing环境中这样做,这是行不通的。 在testing之前,当我使用“模板”而不是“组件”与ui-router一起使用“旧模式”时,执行$rootScope.$digest()就足以在<div ui-view></div>但使用这种新的方式,这不工作了。 我究竟做错了什么? 编辑 :我一直试图深入了解这个问题,我看到这个问题是与HTTP请求完成。 也许这与我的承诺使用async / awaitparsingcallback的方式有关。 请检查服务: 服务 export class TodoService { constructor($http, BASE_URL) { this.http = $http; this.url = `${BASE_URL}/todos` } async getTodos() { const apiResponse = await this.http.get(this.url) return apiResponse.data.todos } } 路由器 import '@uirouter/angularjs' export function routes($stateProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false, rewriteLinks: true, }) $stateProvider […]
我正尝试使用WebRTC在屏幕上显示videoinput作为实时馈送。 我不是想做任何对等的通讯或类似的东西,只是显示一个video源。 代码我有我的笔记本电脑集成摄像头工作正常,但是当我连接外部videoinput设备(在这种情况下,通过S-Video连接到USBinput使用StarTech转换器的旧摄像机 – 型号SVID2USB2NS),我什么也没得到。 我已经在Chrome和FireFox中试过了。 这两个浏览器findvideo设备,并提供我的集成摄像头或USB设备(在这种情况下列为“USB 2820”)的select,所以他们知道在这种情况下的设备。 在Chrome中,当我尝试连接时,getUserMedia调用的“成功”callback被调用,如果我.getVideoTracks()findMediaStreamTrack ,并且callback的时刻, MediaStreamTrack返回enabled = true和readyState = live 。 然而,没有videoinput(只是一个黑色的video面板,Chrome浏览器标签中的红色“录制”图标没有出现)。 如果我稍后再检查MediaStreamTrack,我发现readyState now =“ ended ”(虽然启用仍然成立)。 在FireFox中,find了设备,但是使用getUserMedia连接到它的任何尝试都会触发错误callback,并带有HARDWARE_UNAVAILABLE错误。 我的getUserMedia调用很简单: navigator.getUserMedia({ audio: false, video: true }, _webRTCsuccessCallback, _webRTCerrorCallback); 我的成功callback是(包括一些testing代码立即检查MediaStreamTrack和一秒钟后): function _webRTCsuccessCallback(stream) { window.stream = stream; // stream available to console if (window.URL) { _video.src = window.URL.createObjectURL(stream); } else { _video.src = […]
我正在尝试将Disqus SSO集成到我的网站中。 var DISQUS_SECRET = "xyz"; var DISQUS_PUBLIC = "abc"; var disqus_developer = 1; function disqusSignon() { var disqusData = { id: "{{ user.id }}", username: "{{ user.username }}", email: "{{ user.email }}" }; var disqusStr = JSON.stringify(disqusData); var timestamp = Math.round(+new Date() / 1000); var message = window.btoa(disqusStr); var result = CryptoJS.HmacSHA1(message + " […]
我的应用程序中有大约100个.js文件。 我需要从这些文件中find未使用的函数。 哪个编辑器或工具可以帮助我?
我需要知道鼠标光标何时离开div 。 所以我连接了mouseout事件。 但是,如果我非常快速地将鼠标移出div ,则mouseout事件不会触发 。 这是正确的:鼠标光标静止在div ,现在在div 外 ,但是mouseoutcallback没有被调用。 (如果我不移动鼠标的话,它工作的很好。) 顺便说一句,在最新的谷歌浏览器中是这样的 – 所以不只是一个“旧的浏览器”的问题。 解决方法: 关于这个问题的一个问题已经提出过了 。 显然这只是一个生活中的事实,唯一的解决方法是我手动监视mousemove事件,每次检查光标的x / y坐标,看看它们是否落入div的边界框,所以你有如果光标不在其中,则有更多机会“注意”。 与让浏览器本身执行所有这些操作相比,对每一个像素移动进行计算都有一定的性能影响。 编码也很繁琐。 在我的问题上… 为什么浏览器不能可靠捕捉到mouseout事件? 如果我可以可靠地告诉鼠标何时离开div使用上述解决方法,为什么浏览器不能做到这一点? 我明白(从上面链接的答案),JavaScript不尝试插入“框架”。 假如你把一个鼠标移动处理程序放在document ,并快速将鼠标向右移动一个完美的水平线,你可能不会得到200个mousemove事件。 less数将被错过。 我没有这个问题。 但是,如果在鼠标穿越div的边界时错过了某些像素运动,为什么还要忽略mouseout事件呢? 当浏览器终于开始重新注册鼠标的位置时(突然快速移动之后),即使鼠标现在在盒子外面数英里 ,重点是它曾经是在盒子里,不再是 。 那么为什么不呢然后发生鼠标事件呢? 我只是不明白为什么这将是浏览器供应商解决的一个难题。 (但是我相信可能有一个很好的理由,我觉得这太愚蠢了。) 我主要是出于好奇,发布这个问题,但我希望答案可能会提供一些洞察力,可以帮助我更有效地解决问题。 此外,任何替代解决方法(比上面提到的更快)将受到欢迎。
不是在Mozilla,而是: 对于image : 感谢Rickard的鉴定 http://www.w3.org/html/wg/drafts/html/CR/embedded-content-0.html#dom-image 它提供了DOM接口的构造函数细节。 可供option : http://www.w3.org/html/wg/drafts/html/CR/forms.html#dom-option 也给出了DOM接口的构造函数的细节。 (使用: http://www.google.com/search?client=ubuntu&channel=fs&q=constructor+site%3Adev.w3.org%2Fhtml5&ie=utf-8&oe=utf-8 ) 鉴于这些参考文献, mozilla.org是否如下文所述是相同的。 具体来说,在mozilla.org是像在当代背景下logging的new Image()和new Option()构造函数? 古代文献 , Image()在http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/reference/image.html中定义 Option()定义在http://devedge-temp.mozilla.org/library/manuals/2000/javascript/1.3/reference/option.html 描述了这些构造函数的存在,暗示它们是内在的JavaScript语言组件,这是不正确的。 javascript: alert([new Image(), '\n\n', new Option()]) 通过展示清楚地表明他们的显性存在 [object HTMLImageElement], ,[object HTMLOptionElement] 修辞,怎么样: javascript:alert([new Anchor(), new Preserve(), new Form(),,, ]) 还有什么其他的原始元素DOM构造函数? 或者,没有更多? 对Mozilla使用的DOM范式是否是讽刺的,是否与new Image()和new Option()等的编程定义合并,解释了它们的缺失? 然而,这些构造函数显然不是JavaScript的语言规范的内在,当然也不是HTML。 那么,究竟在哪里有一个正确的当前范式(来源于mozilla.org )来描述它们,包括参数types和顺序? 引用: HTMLImageElement Mozilla文档 当前在Mozilla中使用Image()构造函数的先例 堆栈溢出相关的问题 […]