Questions tagged «javascript»

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


4
Require.js和仅在DOM中创建<script>元素之间有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 使用Require.JS和仅&lt;script&gt;在DOM中创建元素之间有什么区别? 我对Require.JS的理解是,它提供了加载依赖项的能力,但是这不能简单地通过创建一个&lt;script&gt;加载必要的外部JS文件的元素来完成吗? 例如,假设我有功能doStuff(),需要功能needMe()。doStuff()在外部文件中do_stuff.js,而needMe()在外部文件中need_me.js。 使用Require.JS方法: define(['need_me'],function(){ function doStuff(){ //do some stuff needMe(); //do some more stuff } }); 只需创建一个脚本元素即可: function doStuff(){ var scriptElement = document.createElement('script'); scriptElement.src = 'need_me.js'; scriptElement.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(scriptElement); //do some stuff needMe(); //do some more stuff } 这两个工作。但是,第二个版本不需要我加载所有Require.js库。我真的没有看到任何功能上的区别...

11
如何在JavaScript中将长正则表达式拆分为多行?
我有一个很长的正则表达式,我希望在JavaScript代码中将其分成多行,以根据JSLint规则将每行长度保持80个字符。我认为这对阅读更好。这是模式样本: var pattern = /^(([^&lt;&gt;()[\]\\.,;:\s@\"]+(\.[^&lt;&gt;()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

30
JavaScript中的排列?
我正在尝试编写一个执行以下操作的函数: 将整数数组作为参数(例如[1,2,3,4]) 创建所有[1,2,3,4]可能排列的数组,每个排列的长度为4 下面的函数(我在网上找到了它)通过将字符串作为参数并返回该字符串的所有排列来实现 我无法弄清楚如何对其进行修改以使其能够与整数数组一起使用,(我认为这与某些方法在字符串上的处理方式与在整数上的处理方式不同有关,但是我不确定。 ..) var permArr = [], usedChars = []; function permute(input) { var i, ch, chars = input.split(""); for (i = 0; i &lt; chars.length; i++) { ch = chars.splice(i, 1); usedChars.push(ch); if (chars.length == 0) permArr[permArr.length] = usedChars.join(""); permute(chars.join("")); chars.splice(i, 0, ch); usedChars.pop(); } return …


6
使用字符串变量即时创建RegExps
假设我想使以下内容可重复使用: function replace_foo(target, replacement) { return target.replace("string_to_replace",replacement); } 我可能会做这样的事情: function replace_foo(target, string_to_replace, replacement) { return target.replace(string_to_replace,replacement); } 使用字符串文字,这很容易。但是,如果我想对正则表达式更加棘手,该怎么办?例如,说我要替换,而是 string_to_replace。本能地,我会尝试通过以下方式扩展上述内容: function replace_foo(target, string_to_replace, replacement) { return target.replace(/^string_to_replace/,replacement); } 这似乎不起作用。我的猜测是它认为string_to_replace是字符串文字,而不是代表字符串的变量。是否可以使用字符串变量即时创建JavaScript正则表达式?如果可能的话,这样的事情会很棒: function replace_foo(target, string_to_replace, replacement) { var regex = "/^" + string_to_replace + "/"; return target.replace(regex,replacement); }
138 javascript  regex 

5
`npm build`不会在package.json中运行名为“ build”的脚本
对于新模块,我试图在npm build没有gulp / Grunt /其他专用构建工具的情况下使用。 "scripts": { "build": "node build.js" }, 我的build.js很简单 console.log('Hello') 但是,跑步 npm build 仅退出而不打印任何内容,状态为0。 运行: npm install 也可以执行所有正常操作,但是也不运行build.js。 如何让npm运行我的构建脚本? 编辑:即使简单的bash命令似乎也不起作用,例如 "scripts": { "build": "touch TESTFILE" }, 不使用该名称创建文件。
138 javascript  node.js  build  npm 

11
如何检测网页中使用了哪种定义的字体?
假设我的页面中有以下CSS规则: body { font-family: Calibri, Trebuchet MS, Helvetica, sans-serif; } 如何检测用户浏览器中使用了哪种定义的字体? 编辑让人不知道为什么要这样做的人:我检测到的字体包含其他字体不可用的字形,并且当用户没有该字体时,我要显示一个链接,要求用户下载该字体,以便他们可以以正确的字体使用我的Web应用程序。 当前,我正在为所有用户显示下载字体链接,我只想为未安装正确字体的用户显示此字体。
138 javascript  html  css  fonts 


16
更改html5视频标签上的来源
我正在尝试构建一个随处可见的视频播放器。到目前为止,我将与: &lt;video&gt; &lt;source src="video.mp4"&gt;&lt;/source&gt; &lt;source src="video.ogv"&gt;&lt;/source&gt; &lt;object data="flowplayer.swf" type="application/x-shockwave-flash"&gt; &lt;param name="movie" value="flowplayer.swf" /&gt; &lt;param name="flashvars" value='config={"clip":"video.mp4"}' /&gt; &lt;/object&gt; &lt;/video&gt; (在几个网站上都可以看到,例如所有人的视频),到目前为止,一切都很好。 但是现在我也想要某种播放列表/菜单以及视频播放器,从中我可以选择其他视频。这些应该立即在我的播放器中打开。因此,我将不得不“动态地更改视频的来源”(如dev.opera.com/articles/everything-you-need-to-know-html5-video-audio/-部分“让我们看另一部电影“)和javascript。让我们暂时忘记flashplayer(以及IE)部分,我将在以后尝试解决。 所以我的JS更改&lt;source&gt;标签应该是这样的: &lt;script&gt; function loadAnotherVideo() { var video = document.getElementsByTagName('video')[0]; var sources = video.getElementsByTagName('source'); sources[0].src = 'video2.mp4'; sources[1].src = 'video2.ogv'; video.load(); } &lt;/script&gt; 问题是,这不适用于所有浏览器。也就是说,firefox = O有一个不错的页面,您可以在其中观察到我遇到的问题:http : //www.w3.org/2010/05/video/mediaevents.html 我一触发load()方法(在firefox中,请注意),视频播放器就会死亡。 现在我发现,当我不使用多个&lt;source&gt;标签,而是在&lt;video&gt;标签中仅使用一个src属性时,整个事情在Firefox中都可以使用。 …
138 javascript  html  video  load 

5
如何使用setInterval和clearInterval?
function doKeyDown(event) { switch (event.keyCode) { case 32: /* Space bar was pressed */ if (x == 4) { setInterval(drawAll, 20); } else { setInterval(drawAll, 20); x += dx; } break; } } 大家好, 我想调用drawAll()一次,而不创建一次又一次调用的循环,drawAll我应该为此使用递归方法还是应该使用clearInterval? 还请告诉我用clearInterval?谢谢 :)
138 javascript  jquery 


12
如何在Angular 2的DatePipe中设置语言环境?
我想使用欧洲格式显示日期,dd/MM/yyyy但使用DatePipe shortDate格式仅使用美国日期样式显示MM/dd/yyyy。 我假设多数民众赞成在默认语言环境是en_US。也许我在文档中找不到,但是如何更改Angular2应用程序中的默认语言环境设置?也许有某种方法可以将自定义格式传递给DatePipe?

11
javascript根据键值在数组中查找和删除对象
我一直在尝试几种方法来查找数组中的对象,其中ID = var,如果找到,则从数组中删除对象并返回新的对象数组。 数据: [ {"id":"88","name":"Lets go testing"}, {"id":"99","name":"Have fun boys and girls"}, {"id":"108","name":"You are awesome!"} ] 我可以使用jQuery $ grep搜索数组; var id = 88; var result = $.grep(data, function(e){ return e.id == id; }); 但是,当id == 88时,如何删除整个对象,并返回如下数据: 数据: [ {"id":"99","name":"Have fun boys and girls"}, {"id":"108","name":"You are awesome!"} ]

9
删除斧头vs斧头=未定义
两者中的任何一个有实质性的区别吗? delete a.x; 与 a.x = undefined; 哪里 a = { x: 'boo' }; 可以说它们相等吗? (我没有考虑诸如“ V8喜欢不使用delete更好的东西”之类的东西)
138 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.