我们都知道全局variables不过是最佳实践。 但有几个例子,如果没有它们就很难编码。 你用什么技术来避免使用全局variables? 例如,给定以下情况,你将如何不使用全局variables? JavaScript代码: var uploadCount = 0; window.onload = function() { var frm = document.forms[0]; frm.target = "postMe"; frm.onsubmit = function() { startUpload(); return false; } } function startUpload() { var fil = document.getElementById("FileUpload" + uploadCount); if (!fil || fil.value.length == 0) { alert("Finished!"); document.forms[0].reset(); return; } disableAllFileInputs(); fil.disabled = false; alert("Uploading file […]
我的同事一直在用“f”的小写“new function()”来定义JavaScript中的新对象。 它似乎在所有主stream浏览器中都能正常工作,并且在隐藏私有variables方面似乎也相当有效。 这是一个例子: var someObj = new function () { var inner = 'some value'; this.foo = 'blah'; this.get_inner = function () { return inner; }; this.set_inner = function (s) { inner = s; }; }; 只要“this”被使用,它就成为someObj的公共财产。 所以someObj.foo,someObj.get_inner()和someObj.set_inner()都是公开的。 另外,set_inner()和get_inner()是特权方法,所以它们可以通过闭包访问“内部”。 但是,我还没有看到任何地方提及这种技术。 就连道格拉斯·克罗克福德的JSLint也抱怨道: 奇怪的build筑。 删除“新” 我们在生产中使用这种技术,似乎运行良好,但我有点担心,因为它没有logging在任何地方。 有谁知道这是否是一种有效的技术?
我的意思是,看看这个代码 : <a href="#" id="link">Link</a> <span>Moving</span> $('#link').click(function () { console.log("Enter"); $('#link').animate({ width: 200 }, 2000, function() { console.log("finished"); }); console.log("Exit"); }); 正如你在控制台中看到的那样,“animate”函数是asynchronous的,它“分叉”事件处理程序块代码的stream程。 事实上 : $('#link').click(function () { console.log("Enter"); asyncFunct(); console.log("Exit"); }); function asyncFunct() { console.log("finished"); } 按照代码的stream程! 如果我想创build我的function asyncFunct() { }与此行为,我怎么能做到这一点与JavaScript / jQuery的? 我认为有没有使用setTimeout()的策略
iframe中的网站不在同一个域中 ,但都是我的,我想在iframe和父网站之间进行通信。 可能吗?
我在几个地方见过这个 function fn() { return +new Date; } 我可以看到它是返回一个时间戳,而不是一个date对象,但我找不到任何有关加号的文档。 谁能解释一下?
我想知道是否有一个快速的方法来创build一个input文本元素与右侧的图标清除input元素本身(如谷歌search框)。 我环顾四周,但我只发现如何把一个图标作为input元素的背景。 有没有一个jQuery插件或其他东西? 谢谢 编辑:我想要input文本元素内的图标 就像是: ————————————————– | X| ————————————————–
有没有什么办法可以closuresJavaScript代码中的所有console.log语句,用于testing目的?
如何从浏览器的右键菜单中禁用“保存video为…”以防止客户端下载video? 是否有更完整的解决scheme阻止客户端直接访问文件path?
我正在开发Web应用程序,需要渲染一个页面并在客户端(浏览器)端做一个截图。 我不需要将屏幕截图保存在本地硬盘上,只需将其保存在RAM中,稍后再发送到应用程序服务器即可。 我研究过: BrowserShots等服务… 机械化浏览器… wkhtmltoimage … Python WebKit2PNG … 但是这些都没有给我所需要的一切,那就是: 在浏览器端进行处理(生成页面的截图)。 不需要保存在硬盘上! 只是… …将图像发送到服务器进行进一步处理。 捕获整个页面(不仅是可见的部分) 最终我find了Google的反馈工具(点击YouTube页脚上的“反馈”查看)。 它包含了用于JPG编码的JavaScript和其他两个巨大的脚本,我无法确定它们究竟是干什么的… 但是它在客户端处理 – 否则将这个巨大的JPEG编码器放在代码中没有意义! 任何人有任何想法他们是如何做到这一点/我怎么能做到这一点? 这里是一个反馈的例子(在一些屏幕上报告错误)
我一直在寻找jQuery的插件,并想知道如何适应该插件将一个数字(如4.8618164)变成一个4.8618164星星填写满分为5.基本上解释一个数字<5成星星填写在一个5星评级系统使用jQuery / JS / CSS。 请注意,这只会显示/显示已有号码的星级评分,不接受新的评分提交。