Questions tagged «javascript»

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

5
如何在Chrome扩展程序中使用jQuery?
我正在写一个chrome扩展程序。我想jQuery在我的扩展程序中使用。我没有使用任何背景页面,只是一个背景脚本。 这是我的文件: manifest.json { "manifest_version": 2, "name": "Extension name", "description": "This extension does something,", "version": "0.1", "permissions": [ "activeTab" ], "browser_action": { "default_icon": "images/icon_128.png" }, "background": { "scripts": ["background.js"], "persistent": false }, "icons": { "16": "images/icon_16.png", "48": "images/icon_48.png", "128": "images/icon_128.png" } } 我的background.js文件只是运行另一个名为work.js // Respond to the click on extension …

6
什么是React js中的“安装”?
在学习ReactJS时,我多次听到“ mount”一词。与此术语相比,似乎存在生命周期方法和错误。通过安装,React到底意味着什么? 例子: componentDidMount() and componentWillMount()

6
Ruby在JavaScript中|| =(或等于)?
我喜欢Ruby的||=机制。如果变量不存在或为nil,则创建它并将其设置为等于: amount # is nil amount ||= 0 # is 0 amount ||= 5 # is 0 我现在需要在JavaScript中执行类似的操作。有什么惯例或正确的方式来做到这一点?我知道这||=是无效的语法。有两种明显的处理方法: window.myLib = window.myLib || {}; // or if (!window.myLib) window.myLib = {};
128 javascript  ruby  syntax 

7
如何导入单个Lodash函数?
使用webpack,我正在尝试导入isEqual,因为lodash似乎正在导入所有内容。我尝试做以下没有成功的事情: import { isEqual } from 'lodash' import isEqual from 'lodash/lang' import isEqual from 'lodash/lang/isEqual' import { isEqual } from 'lodash/lang' import { isEqual } from 'lodash/lang'
128 javascript  lodash 

17
如何使用ES6语法导入jquery?
我正在ES6通过babelTranspiler和preset-es2015插件以及semantic-ui样式使用(JavaScript)语法编写一个新应用程序。 index.js import * as stylesheet from '../assets/styles/app.scss'; import * as jquery2 from '../dist/scripts/jquery.min'; import * as jquery3 from '../node_modules/jquery/dist/jquery.min'; console.log($('my-app')); index.html <!DOCTYPE html> <html lang="fr"> <head> <body> <script src="dist/app.js"></script> </body> </html> 项目结构 . ├── app/ │ ├── index.js ├── assets/ ├── dist/ │ ├── scripts/ │ │ ├── jquery.min.js …

11
在javascript中获取设备宽度
有没有一种方法可以使用javascript获取用户设备的宽度(而不是视口宽度)? 我可以说CSS媒体查询提供了这一点 @media screen and (max-width:640px) { /* ... */ } 和 @media screen and (max-device-width:960px) { /* ... */ } 如果我将智能手机定位为横向模式,这将很有用。例如,在iOS max-width:640px上,即使在iPhone 4上,声明也 将同时针对横向和纵向模式。据我所知,对于Android,情况并非如此,因此在这种情况下使用device-width成功地针对两个方向,而不定位桌面设备。 但是,如果我基于设备宽度调用javascript绑定,则似乎只能测试视口宽度,这意味着需要进行以下额外测试, if ($(window).width() <= 960 && $(window).height <= 640) { /* ... */ } 考虑到设备宽度可供CSS使用的提示,这对我来说似乎并不优雅。

7
未捕获的TypeError :(中间值)(...)不是函数
当我将闭包中的js逻辑作为单个js文件编写时,一切工作正常,例如: (function(win){ //main logic here win.expose1 = .... win.expose2 = .... })(window) 但是,当我尝试在同一个js文件中的闭包之前插入替代日志记录功能时, window.Glog = function(msg){ console.log(msg) } // this was added before the main closure. (function(win){ //the former closure that contains the main javascript logic; })(window) 它抱怨有一个TypeError: Uncaught TypeError: (intermediate value)(...) is not a function 我做错什么了?

5
如果JavaScript中为null或未定义,则替换一个值
我需要将??C#运算符应用于JavaScript,但我不知道该怎么做。在C#中考虑这一点: int i?=null; int j=i ?? 10;//j is now 10 现在,我在JavaScript中进行了设置: var options={ filters:{ firstName:'abc' } }; var filter=options.filters[0]||'';//should get 'abc' here, it doesn't happen var filter2=options.filters[1]||'';//should get empty string here, because there is only one filter 如何正确执行? 谢谢。 编辑:我发现了问题的一半:我无法对对象(my_object[0])使用“索引器”表示法。有没有办法绕过它?(我事先不知道过滤器属性的名称,也不想对其进行迭代)。
128 javascript 

5
将jQuery $(this)与ES6箭头函数一起使用(词汇表this绑定)
将ES6箭头功能与词汇this绑定一起使用非常好。 但是,我刚才遇到一个问题,将它与典型的jQuery click绑定一起使用: class Game { foo() { self = this; this._pads.on('click', function() { if (self.go) { $(this).addClass('active'); } }); } } 改用箭头功能: class Game { foo() { this._pads.on('click', () => { if (this.go) { $(this).addClass('active'); } }); } } 然后$(this)转换为ES5(self = this)类型的关闭。 是否可以让Traceur忽略词法绑定的“ $(this)”?


2
window.location.href,window.location.replace和window.location.assign之间的区别
之间有什么区别 window.location.href="http://example.com"; window.location.replace("http://example.com"); window.location.assign("http://example.com"); 我在许多论坛上阅读过,它们window.location.assign()仅替换当前的会话历史记录,因此浏览器的后退按钮将不起作用。但是,我无法重现此内容。 function fnSetVariable() { //window.location.href = "http://example.com"; window.location.replace("http://example.com"); //window.location.assign("http://example.com"); } <a onmouseover="fnSetVariable();" href="PageCachingByParam.aspx?id=12" > CLICK </a>
128 javascript  dom  location 

6
使用jQuery动态添加onClick事件
由于使用了插件,因此无法像往常一样将“ onClick”属性添加到HTML表单输入中。插件正在处理我网站中的表单部分,并且没有提供自动执行此操作的选项。 基本上我有这个输入: <input type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style=""> 我想使用jQuery onload向其添加onClick,使其像这样: <input onClick="myfunction()" type="text" id="bfCaptchaEntry" name="bfCaptchaEntry" style=""> 我该怎么做呢? 我知道这可能不是标准做法,但在我的情况下,这似乎是最简单的选择。 我是jQuery的新手,因此非常感谢您的帮助。
128 javascript  jquery  html 

8
如何在纯JavaScript中切换元素的类?
我正在寻找一种方法将此jQuery代码(在响应菜单部分中使用)转换为纯JavaScript。 如果难以实现,则可以使用其他JavaScript框架。 $('.btn-navbar').click(function() { $('.container-fluid:first').toggleClass('menu-hidden'); $('#menu').toggleClass('hidden-phone'); if (typeof masonryGallery != 'undefined') masonryGallery(); });
128 javascript  dom  toggle 

17
将JS对象转换为表单数据
如何将JS对象转换为 FormData? 我要这样做的原因是,我有一个约100个表单字段值构造的对象。 var item = { description: 'Some Item', price : '0.00', srate : '0.00', color : 'red', ... ... } 现在,我被要求将上传文件功能添加到我的表单中,当然,通过JSON是不可能的,因此我打算移至FormData。那么,有什么方法可以将我的JS对象转换为FormData?

18
ES6模板文字可以在运行时替换(或重用)吗?
tl; dr:是否可以制作可重用的模板文字? 我一直在尝试使用模板字面量,但我想我只是不明白,而现在却感到沮丧。我的意思是,我认为我明白了,但是“它”不应该是它的工作方式或应该如何得到。它应该变得不同。 我看到的所有示例(甚至是带标签的模板)都要求“替换”必须在声明时而不是在运行时完成,这对我来说对于模板似乎完全没有用。也许我疯了,但是对我来说,“模板”是一个包含令牌的文档,这些令牌在您使用时(而不是在创建时)会被替换,否则只是一个文档(即字符串)。模板与令牌一起存储为令牌,并且在您评估模板时会评估这些令牌。 每个人都举一个可怕的例子,类似于: var a = 'asd'; return `Worthless ${a}!` 很好,但是如果我已经知道了a,我会return 'Worthless asd'或return 'Worthless '+a。重点是什么?说真的 好吧,关键是懒惰。更少的优点,更多的可读性。大。但这不是模板!不是恕我直言。MHO至关重要!恕我直言,问题是模板在声明时就进行了评估,因此,如果这样做,恕我直言: var tpl = `My ${expletive} template`; function go() { return tpl; } go(); // SPACE-TIME ENDS! 由于expletive未声明,因此输出类似的信息My undefined template。超。实际上,至少在Chrome中,我什至无法声明模板;由于expletive未定义,因此将引发错误。我需要的是能够在声明模板后进行替换: var tpl = `My ${expletive} template`; function go() { return tpl; } var …

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.