我已经写了一个JavaScript函数,它使用setInterval来每十分之一秒处理一个字符串进行一定次数的迭代。 function timer() { var section = document.getElementById('txt').value; var len = section.length; var rands = new Array(); for (i=0; i<len; i++) { rands.push(Math.floor(Math.random()*len)); }; var counter = 0 var interval = setInterval(function() { var letters = section.split(''); for (j=0; j < len; j++) { if (counter < rands[j]) { letters[j] = Math.floor(Math.random()*9); }; }; document.getElementById('txt').value […]
我写了一个正则表达式来从HTML中获取字符串,但似乎多行标志不起作用。 这是我的模式,我想获得在h1标签的文字。 var pattern= /<div class="box-content-5">.*<h1>([^<]+?)<\/h1>/mi m = html.search(pattern); return m[1]; 我创建了一个字符串来测试它。 当字符串包含“\ n”时,结果始终为空。 如果我删除所有的“\ n”,它给了我正确的结果,无论有没有/ m标志。 我的正则表达式有什么问题?
我希望跟踪鼠标光标的位置,周期性地每t毫秒。 所以本质上,当一个页面加载 – 这个跟踪器应该开始,并说(每隔100毫秒),我应该得到posX和posY的新值,并打印出来的形式。 我尝试了下面的代码 – 但值不刷新 – 只有posX和posY的初始值显示在窗体框中。 任何想法,我怎么能得到这个启动和运行? <html> <head> <title> Track Mouse </title> <script type="text/javascript"> function mouse_position() { var e = window.event; var posX = e.clientX; var posY = e.clientY; document.Form1.posx.value = posX; document.Form1.posy.value = posY; var t = setTimeout(mouse_position,100); } </script> </head> <body onload="mouse_position()"> <form name="Form1"> POSX: <input type="text" name="posx"><br> POSY: […]
我只是读这个问题 ,想尝试别名的方法,而不是函数包装方法,但我似乎无法得到它的工作在Firefox 3或3.5beta4,或谷歌浏览器,在他们的调试窗口和在测试网页。 萤火虫: >>> window.myAlias = document.getElementById function() >>> myAlias('item1') >>> window.myAlias('item1') >>> document.getElementById('item1') <div id="item1"> 如果我把它放在一个网页上,对myAlias的调用给我这个错误: uncaught exception: [Exception… "Illegal operation on WrappedNative prototype object" nsresult: "0x8057000c (NS_ERROR_XPC_BAD_OP_ON_WN_PROTO)" location: "JS frame :: file:///[…snip…]/test.html :: <TOP_LEVEL> :: line 7" data: no] Chrome(为清楚起见,插入了>>>): >>> window.myAlias = document.getElementById function getElementById() { [native code] } >>> window.myAlias('item1') […]
有谁知道一个简单的方法来取一个日期(如今天)和回X日? 所以,例如,如果我想要在今天5天之前计算日期。
window.onload事件和body标签的onload事件究竟有什么区别? 我什么时候使用哪种方法以及如何正确完成?
有没有办法让“私有”变量(在构造函数中定义的),可用于原型定义的方法? TestClass = function(){ var privateField = "hello"; this.nonProtoHello = function(){alert(privateField)}; }; TestClass.prototype.prototypeHello = function(){alert(privateField)}; 这工作: t.nonProtoHello() 但是这不是: t.prototypeHello() 我习惯于在构造函数中定义我的方法,但由于几个原因,我正在远离它。
我正在寻找一种简单的方法来监视一个对象或变量的变化,我发现Object.watch() ,这是在Mozilla浏览器,但不支持IE浏览器。 于是我开始四处搜寻,看看是否有人写了某种类似的东西。 关于我发现的唯一的事情是一个jQuery插件 ,但我不知道如果这是最好的方式去。 我在我的大部分项目中肯定使用jQuery,所以我不担心jQuery方面的问题。 无论如何,这个问题:有人可以给我看一个jQuery插件的工作示例吗? 我有问题,使其工作… 或者,有没有人知道任何更好的选择,将跨浏览器工作? 答案后更新 : 谢谢大家的回应! 我尝试了这里发布的代码: http : //webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html 但我似乎无法使IE浏览器的工作。 下面的代码在Firefox中工作正常,但在IE中什么都不做。 在Firefox中,每次更改watcher.status ,都会watcher.status document.write()中的watcher.watch() ,您可以在页面上看到输出。 在IE中,这并没有发生,但我可以看到watcher.status正在更新值,因为最后的document.write()调用显示正确的值(在IE和FF中)。 但是,如果回调函数没有被调用,那么这是没有意义的… 🙂 我错过了什么吗? var options = {'status': 'no status'}, watcher = createWatcher(options); watcher.watch("status", function(prop, oldValue, newValue) { document.write("old: " + oldValue + ", new: " + newValue + "<br>"); return newValue; }); […]
在这样的片段中: gulp.task "coffee", -> gulp.src("src/server/**/*.coffee") .pipe(coffee {bare: true}).on("error",gutil.log) .pipe(gulp.dest "bin") gulp.task "clean",-> gulp.src("bin", {read:false}) .pipe clean force:true gulp.task 'develop',['clean','coffee'], -> console.log "run something else" 在develop任务,我想运行clean ,完成后,运行coffee ,当完成后,运行其他的东西。 但我无法弄清楚。 这件作品不起作用。 请指教。
在JavaScript中创建任意长度的零填充数组的最有效方法是什么?