Questions tagged «javascript»

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

10
如何在JavaScript中获取全局对象?
我想检查脚本是否已加载其他模块。 if (ModuleName) { // extend this module } 但是,如果ModuleName不存在,那就是throw。 如果我知道那Global Object是什么,我可以使用它。 if (window.ModuleName) { // extend this module } 但是,因为我希望我的模块与浏览器和工作node,rhino等等,我不能假设window。 据我了解,这在ES 5中无法使用"use strict";。 var MyGLOBAL = (function () {return this;}()); // MyGlobal becomes null 这也会因抛出异常而失败 var MyGLOBAL = window || GLOBAL 所以好像我已经离开了 try { // Extend ModuleName } catch(ignore) …

3
使用angular2从服务更新组件中的变量更改
我的应用程序具有保存名称的NameService。 App有两个子组件,Navbar和TheContent引用了此服务。每当服务中的名称更改时,我都希望它在其他两个组件中进行更新。我怎样才能做到这一点? import {Component, Injectable} from 'angular2/core' // Name Service @Injectable() class NameService { name: any; constructor() { this.name = "Jack"; } change(){ this.name = "Jane"; } } // The navbar @Component({ selector: 'navbar', template: '<div>This is the navbar, user name is {{name}}.</div>' }) export class Navbar { name: any; …

3
Firefox阅读器视图如何操作
概要 我正在寻找创建网页的标准,并且,如果用户需要,可以[完全]确保它会出现在Firefox Reader View中。 有些网站具有此选项,有些则没有。一些文本较多的人没有此选项。例如,“堆栈溢出”仅在阅读器视图中显示问题,而不显示任何答案。 题 我已经将Firefox从38.0.1升级到38.0.5,并且发现了一个称为ReaderView的新功能-一种覆盖层,可以消除“页面混乱”并使文本更易于阅读。在某些页面上,Readerview位于地址栏的右侧,作为可单击图标。 很好,但是从编程的角度来看,我想知道“阅读器视图”是如何工作的,适用于哪些页面的标准。我对Mozilla Firefox网站进行了一些探索,没有明确的答案(解决了我找到的所有编程答案),我当然对此进行了Googled / Binged处理,并且仅返回了有关Firefox插件的引用-这不是插件但是是新Firefox版本的主要组成部分。 我假设Readerview使用HTML5并会提取<article>内容,但事实并非如此,因为它适用于似乎未使用<article>或类似HTML5标签的Wikipedia ,而是readview提取了某些<div>s并单独显示它们。此功能可用于某些HTML5页面(例如Wikipedia),但不适用于其他页面。 如果有人对Firefox ReaderView的实际操作方式以及网站开发人员如何使用此操作有任何想法,可以分享一下吗?或者,如果您可以找到这些信息的位置,您是否可以向我指出正确的方向-因为我一直找不到。

9
如何通过JavaScript重新触发WebKit CSS动画?
因此,我有以下-webkit-animation规则: @-webkit-keyframes shake { 0% { left: 0; } 25% { left: 12px; } 50% { left: 0; } 75% { left: -12px; } 100% { left:0; } } 还有一些CSS定义了我的一些动画规则box: #box{ -webkit-animation-duration: .02s; -webkit-animation-iteration-count: 10; -webkit-animation-timing-function: linear; } 我可以shake在#box这样的: document.getElementById("box").style.webkitAnimationName = "shake"; 但是我以后不能再动摇了。 这只会摇晃盒子一次: someElem.onclick = function(){ document.getElementById("box").style.webkitAnimationName = "shake"; …

3
Javascript:模块模式与构造器/原型模式?
我想知道模块模式或Constructor / protoType模式是否更适合我的工作。 基本上,我使用的是不引人注目的javascript-HTML文档具有对.js文件的引用。 我对模块模式的理解: 调用INIT方法(基本上是一个公共方法,我可以使用模块模式创建和返回) 在INIT方法中,分配所有点击事件等。 这听起来很适合我的情况,因为我不需要创建对象和继承层次结构等。 我对构造函数/原型模式的理解: 用于创建对象 用于使用继承(即超类型的子类型) 我是对的,对于提供简洁的JavaScript,模块模式是理想的吗?


3
JSON安全最佳做法?
在研究JSON与XML的问题时,我遇到了这个问题。现在,首选JSON的原因之一是Javascript易于转换,即使用eval()。从安全角度来看,这立即使我感到潜在的问题。 因此,我开始对JSON的安全性方面进行研究,并在此博客文章中就JSON的安全性不如人们认为的那样进行了研究。这部分突出: 更新:如果您正确地执行JSON 100%,那么您只会在顶层拥有对象。数组,字符串,数字等都将被包装。然后,JSON对象将无法执行eval(),因为JavaScript解释器会认为它正在查看的是块而不是对象。这对于防止这些攻击有很长的路要走,但是仍然最好使用不可预测的URL保护您的安全数据。 好的,这是一个好的开始规则:顶级的JSON对象应该始终是对象,而不是数组,数字或字符串。听起来对我来说是个好规则。 关于JSON和AJAX相关的安全性,还有其他事情要做或避免吗? 以上引用的最后一部分提到了不可预测的URL。是否有人对此有更多信息,特别是您如何使用PHP?与Java相比,我在Java方面的经验要丰富得多,并且在Java中这很容易(因为您可以将整个URL映射到单个servlet),而我所做的所有PHP都将单个URL映射到了PHP脚本。 另外,您究竟如何使用不可预测的URL来提高安全性?

30
在Android网页中禁用输入焦点缩放
这是一个难题,我有一个网页(仅适用于android设备),并且在该页面中有一个输入框(特别是一个文本框),当焦点对准时,浏览器就会放大。我不希望它放大-声音容易吧? 这就是有趣的地方:我必须能够总体放大,所以不要说 <meta name='viewport' content='user-scalable=0'> 那对我不起作用。 此外,输入框不会收到点击事件。当单击另一个按钮以编程方式获得焦点时,将显示它。 这是我尝试过的,到目前为止,它们都失败了: jQuery('head meta[name=viewport]').remove(); jQuery('head').prepend('<meta name="viewport" content="width=720px;intial-scale=1.0;maximum-scale=1.0;user-scalable=no" />'); jQuery("#locationLock input").focus(); jQuery('head meta[name=viewport]').remove(); jQuery('head').prepend('<meta name="viewport" content="width=720px;intial-scale=1.0;maximum-scale=1.0;user-scalable=yes" />'); 这也失败了: <input type='text' onfocus="return false"> 还有这个: jQuery("#locationLock input").focus(function(e){e.preventDefault();}); 有任何想法吗?

2
为什么instanceof在babel-node下的Error子类实例上不起作用?
我看到在OS X的babel-node版本6.1.18 / Node版本5.1.0下运行时,该instanceof运算符不适用于Error子类的实例。这是为什么?相同的代码在浏览器中效果很好,请尝试我的小提琴作为示例。 以下代码true在浏览器中输出,而在babel-node下为false: class Sub extends Error { } let s = new Sub() console.log(`The variable 's' is an instance of Sub: ${s instanceof Sub}`) 我只能想象这是由于babel-node中的错误所致,因为它instanceof适用于以外的其他基类Error。 .babelrc { "presets": ["es2015"] } 编译输出 这是babel 6.1.18编译的JavaScript: 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot …


5
对数滑块
我有一个滑块,其值的范围从0到100。 我想将它们映射到100到10,000,000的范围内。 我已经看到一些分散在网络上的函数,但是它们全都在C ++中。我需要用Javascript。 有任何想法吗?

5
对新请求中止先前的ajax请求
我有一个函数,在输入更改时运行ajax调用。 但是,有可能在上一个ajax调用完成之前再次触发该函数。 我的问题是,在开始新的ajax调用之前,我将如何中止它?不使用全局变量。(在这里查看类似问题的答案) 我当前代码的jsfiddle: Javascript: var filterCandidates = function(form){ //Previous request needs to be aborted. var request = $.ajax({ type: 'POST', url: '/echo/json/', data: { json: JSON.stringify({ count: 1 }) }, success: function(data){ if(typeof data !== 'undefined'){ jQuery('.count').text(data.count) console.log(data.count); } } }); }; if(jQuery('#search').length > 0){ var form = jQuery('#search'); …

12
在表单提交上禁用提交按钮
单击后,我编写了以下代码以禁用网站上的提交按钮: $('input[type=submit]').click(function(){ $(this).attr('disabled', 'disabled'); }); 不幸的是,它没有发送表格。我怎样才能解决这个问题? 编辑 我想绑定提交,而不是表格:)

8
使用addEventListener的处理程序中“ this”的值
我已经通过原型创建了一个Javascript对象。我正在尝试动态呈现表。尽管呈现部分很简单并且可以正常工作,但我还需要为动态呈现的表处理某些客户端事件。那也很容易。我遇到问题的地方是处理事件的函数内部的“ this”引用。而不是“ this”引用对象,而是引用引发事件的元素。 参见代码。问题区域在ticketTable.prototype.handleCellClick = function(): function ticketTable(ticks) { // tickets is an array this.tickets = ticks; } ticketTable.prototype.render = function(element) { var tbl = document.createElement("table"); for ( var i = 0; i < this.tickets.length; i++ ) { // create row and cells var row = document.createElement("tr"); var cell1 = …

12
websocket自动关闭连接
我正在用Java构建具有基于码头的嵌入式websocket服务器的应用程序。客户端是google chrome中的默认websocket实现。只有在关闭连接一段时间后,服务器和客户端之间没有传输,一切都可以正常进行。我不确定是谁关闭了连接:码头服务器或Chrome浏览器。 我认为解决此问题的方法是每x秒发送一条消息,但是我愿意接受更好的解决方案。 所以...我的问题是: 这是websocket协议要求的吗?在这种情况下,chrome浏览器正在关闭我的连接? 这是与码头有关的更多东西,或多或少与websocket协议有关吗?在这种情况下,如何在码头上禁用它? 还有另一个问题吗? 谢谢 更新:即使我每秒发送1条消息,连接仍然关闭

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.