Questions tagged «javascript»

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

19
框架克星克星…需要克星码
假设您不希望其他网站将您的网站“框”在<iframe>: <iframe src="http://example.org"></iframe> 因此,您可以在所有页面中插入反框架,框架破坏JavaScript: /* break us out of any containing iframes */ if (top != self) { top.location.replace(self.location.href); } 优秀的!现在,您可以自动“破坏”或突破包含iframe的任何内容。除了一个小问题。 事实证明,您的框架破坏代码可以被破坏,如下所示: <script type="text/javascript"> var prevent_bust = 0 window.onbeforeunload = function() { prevent_bust++ } setInterval(function() { if (prevent_bust > 0) { prevent_bust -= 2 window.top.location = 'http://example.org/page-which-responds-with-204' } }, 1) …

19
Rails 4:如何在Turbo-Links中使用$(document).ready()
尝试以“ rails方式”组织JS文件时,我在Rails 4应用程序中遇到了一个问题。它们以前分散在不同的视图中。我将它们组织到单独的文件中,并通过资产管道进行编译。但是,我刚刚了解到,在打开涡轮链接时,jQuery的“就绪”事件不会在随后的点击中触发。第一次加载页面时,它可以工作。但是,当您单击链接时,其中的任何内容ready( function($) {都不会执行(因为该页面实际上不会再次加载)。好的解释:在这里。 所以我的问题是:什么是确保涡轮链接打开时jQuery事件正常工作的正确方法?您是否将脚本包装在特定于Rails的侦听器中?或者,也许rails有一些使它不必要的魔力?该文档对如何工作有点含糊不清,尤其是在通过清单(如application.js)加载多个文件方面。

15
如何遍历JavaScript对象?
我在JavaScript中有一个对象: { abc: '...', bca: '...', zzz: '...', xxx: '...', ccc: '...', // ... } 我想使用一个for循环来获取其属性。而且我想对其进行迭代(不是一次所有对象属性)。 通过一个简单的数组,我可以使用标准for循环来做到这一点: for (i = 0; i < 100; i++) { ... } // first part for (i = 100; i < 300; i++) { ... } // second for (i = 300; i < …

24
如何检查可见DOM中是否存在元素?
不使用该getElementById方法如何测试元素的存在? 我已经建立了一个现场演示供参考。我也将在此处打印代码: <!DOCTYPE html> <html> <head> <script> var getRandomID = function (size) { var str = "", i = 0, chars = "0123456789abcdefghijklmnopqurstuvwxyzABCDEFGHIJKLMNOPQURSTUVWXYZ"; while (i < size) { str += chars.substr(Math.floor(Math.random() * 62), 1); i++; } return str; }, isNull = function (element) { var randomID = getRandomID(12), savedID = …

30
您如何在Javascript中克隆对象数组?
...每个对象还引用了同一数组中的其他对象吗? 当我第一次想到这个问题时 var clonedNodesArray = nodesArray.clone() 将存在并搜索有关如何在javascript中克隆对象的信息。我确实在StackOverflow上发现了一个问题(由同样的@JohnResig回答),他指出,使用jQuery,您可以做到 var clonedNodesArray = jQuery.extend({}, nodesArray); 克隆对象。我尝试了一下,但这只复制了数组中对象的引用。所以如果我 nodesArray[0].value = "red" clonedNodesArray[0].value = "green" nodeArray [0]和clonedNodesArray [0]的值都将变为“绿色”。然后我尝试 var clonedNodesArray = jQuery.extend(true, {}, nodesArray); 它深深复制了一个对象,但是我分别从Firebug和Opera Dragonfly 得到了“ 太多的递归 ”和“ 控制堆栈溢出 ”消息。 你会怎么做?这是什至不应该做的事情吗?有没有一种可重用的方式来做到这一点在Javascript中?
420 javascript 

23
通过jQuery.Ajax下载文件
我在服务器端有一个Struts2操作,用于文件下载。 <action name="download" class="com.xxx.DownAction"> <result name="success" type="stream"> <param name="contentType">text/plain</param> <param name="inputName">imageStream</param> <param name="contentDisposition">attachment;filename={fileName}</param> <param name="bufferSize">1024</param> </result> </action> 但是,当我使用jQuery调用操作时: $.post( "/download.action",{ para1:value1, para2:value2 .... },function(data){ console.info(data); } ); 在Firebug中,我看到数据是通过Binary流检索的。我想知道如何打开文件下载窗口,以便用户可以在本地保存文件吗?

22
无效的JSON Web令牌
对于我正在研究的一个新的node.js项目,我正在考虑从基于cookie的会话方法切换(这意味着,将ID存储到用户浏览器中包含用户会话的键值存储中)到使用JSON Web令牌(jwt)的基于令牌的会话方法(无键值存储)。 该项目是一个利用socket.io的游戏-在单个会话(web和socket.io)中会有多个通信渠道的情况下,基于令牌的会话将非常有用。 如何使用jwt方法从服务器提供令牌/会话无效? 我还想了解我应该用这种范例寻找哪些常见(或不常见)的陷阱/攻击。例如,如果此范例易受与基于会话存储/ Cookie的方法相同/不同类型的攻击的影响。 所以,说我有以下内容(适应了this和this): 会话商店登录: app.get('/login', function(request, response) { var user = {username: request.body.username, password: request.body.password }; // Validate somehow validate(user, function(isValid, profile) { // Create session token var token= createSessionToken(); // Add to a key-value database KeyValueStore.add({token: {userid: profile.id, expiresInMinutes: 60}}); // The client should save …

16
如何使用JavaScript以编程方式设置选择框元素的值?
我有以下HTML <select>元素: <select id="leaveCode" name="leaveCode"> <option value="10">Annual Leave</option> <option value="11">Medical Leave</option> <option value="14">Long Service</option> <option value="17">Leave Without Pay</option> </select> 使用以leaveCode数字作为参数的JavaScript函数,如何在列表中选择适当的选项?
420 javascript  html  dom 

10
对jQuery和Ajax使用基本身份验证
我正在尝试通过浏览器创建基本身份验证,但我真的无法到达那里。 如果此脚本不在此处,则浏览器身份验证将接管,但是我想告诉浏览器用户即将进行身份验证。 地址应类似于: http://username:password@server.in.local/ 我有一个表格: <form name="cookieform" id="login" method="post"> <input type="text" name="username" id="username" class="text"/> <input type="password" name="password" id="password" class="text"/> <input type="submit" name="sub" value="Submit" class="page"/> </form> 和一个脚本: var username = $("input#username").val(); var password = $("input#password").val(); function make_base_auth(user, password) { var tok = user + ':' + password; var hash = Base64.encode(tok); …



30
获取数组中的所有非唯一值(即:重复/多次出现)
我需要检查一个JavaScript数组,看看是否有重复的值。最简单的方法是什么?我只需要查找重复的值是什么-我实际上不需要它们的索引或它们被重复多少次。 我知道我可以遍历数组并检查所有其他值是否匹配,但是似乎应该有一种更简单的方法。 类似的问题: 获取JavaScript数组中的所有唯一值(删除重复项)
418 javascript  arrays 

18
使用jQuery将JS对象转换为数组
我的应用程序创建了一个JavaScript对象,如下所示: myObj= {1:[Array-Data], 2:[Array-Data]} 但是我需要将此对象作为数组。 array[1]:[Array-Data] array[2]:[Array-Data] 因此,我尝试通过遍历$.each该对象并将元素添加到数组来将该对象转换为数组: x=[] $.each(myObj, function(i,n) { x.push(n);}); 有没有更好的方法将对象转换为数组或函数?

26
ng重复定义次数而不是在数组上重复的方法?
有没有一种方法可以ng-repeat定义次数,而不必总是遍历数组? 例如,在下面,我希望列表项显示5次,并假设$scope.number等于5,并增加数字,因此每个列表项都按1、2、3、4、5递增 所需结果: <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> <li><span>5</span></li> </ul>

14
如何检测文本框的内容已更改
我想检测何时文本框的内容已更改。我可以使用keyup方法,但是它也可以检测不会产生字母的击键,例如箭头键。我想到了使用keyup事件执行此操作的两种方法: 仔细检查所按键的ASCII码是否为字母\退格\删除 使用闭包来记住按键之前文本框中的文本,并检查是否已更改。 两者看起来都很麻烦。

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.