在我的web应用程序中,当用户login时,我将他的Id添加到servlet中的有效ID的向量中,当他注销时,我从向量中删除了他的Id,以便可以看到有多less当前用户处于活动状态用户忘记注销,我的servelt生成的html有: <meta http-equiv="Refresh" content="30; url=My_Servlet?User_Action=logout&User_Id=1111"> 在标签中自动登出他。 但是我注意到很多用户永远都不会忘记。 我发现,为什么通过closures他们的浏览器,他们从来没有手动或自动注销,所以他们的用户ID将永远不会从有效的用户IDvector中删除。 所以,我的问题是:如何检测用户closures他们的浏览器,所以我的servlet可以从vector中删除他们的Id? 我在隧道尽头看到了一些灯光,但仍然有一个问题,我的程序有这样的情况: 活动用户列表: User_1 : Machine_1 [ IP_1 address ] User_2 : Machine_2 [ IP_2 address ] User_3 : Machine_3 [ IP_3 address ] … 我怎么知道,从会话监听器,哪个用户的会话已经结束,因此将他从我的列表中删除? 我希望当会话结束时,HttpServlet的destroy()方法将被调用,我可以在那里删除用户标识,但是当用户closures浏览器时它不会被调用,为什么呢? 当会话closures时,HttpServlet中还有其他的方法吗?
在input框或contenteditable =真正div,如何修改字母“a”的按键返回字母“b”的键击? 也就是说,每次在div中input字母“a”时,输出实际上是字母“b”。 我并不担心在IE中可以使用的解决scheme – 只能在Safari,Chrome和FF上运行。 在Chrome中,我可以看到按键事件具有属性“charCode”,“keyCode”和“which”,所有这些都被分配了按键事件编号。 如果我在一个按键上触发一个事件,我可以修改这些值,但我不知道要返回什么,以便键入的实际键是不同的。 例如: $(window).keypress(function(e){ //$(window) is a jQuery object e.charCode = 102; e.which = 102; e.keyCode = 102; console.log(e); return e; }); 我还可以看到,charCode和keyCode还有一个“originalEvent”属性,它又具有这些属性。 但是,我一直无法修改这些(我尝试了像e.originalEvent.charCode = 102)。
我正在试验Youtube播放器,但默认情况下我无法将其设置为静音。 function onPlayerReady() { player.playVideo(); // Mute?! player.mute(); player.setVolume(0); } 我如何从一开始就将其静音? 小提琴 更新: JavaScript Player API已被弃用 。 使用iframeembedded代替。
我只需要返回string中方括号内的文本。 我有以下正则expression式,但是这也返回方括号: var matched = mystring.match("\\[.*]"); 一个string将只包含一组方括号,例如: Some text with [some important info] 我想匹配包含“一些重要的信息”,而不是我目前得到的“[一些重要的信息]”。
我在表单上有两个function,除非一个function处于活动状态,否则无法工作。 这是我的代码: window.onload = function(event) { var $input2 = document.getElementById('dec'); var $input1 = document.getElementById('parenta'); $input1.addEventListener('keyup', function() { $input2.value = $input1.value; }); } window.onload=function(){ document.getElementById('enable').onchange=function(){ var txt = document.getElementById('gov1'); if(this.checked) txt.disabled=false; else txt.disabled = true; }; }; 我的意思是当我的表单中有这两个函数时,第二个函数可以正常工作,但是第一个函数不起作用,如果取出第二个函数,第一个函数将正常工作,为什么会这样呢? 是因为名字吗?
我读过最好把所有的JavaScript文件放在网页的底部。 HTML5 Boilerplate模板似乎同意: http ://html5boilerplate.com/ 似乎被广泛使用。 我的问题是:第一,这是否有真正的基础? 我已经做了Firebug的testing,似乎有一些小的影响,但它是微不足道的? 图像和其他来源似乎并没有开始加载,直到CSS文件和脚本文件已经加载,但坚持他们在底部似乎没有太大的差异。
有没有一种简单的方法来设置一个“callback”function,以在JavaScript中打开的新窗口? 我想从新窗口中运行父function,但我希望父母能够设置此特定function的名称(所以它不应该在新的Windows页面硬编码)。 例如在父母我有: function DoSomething { alert('Something'); } … <input type="button" onClick="OpenNewWindow(linktonewwindow,DoSomething);" /> 在子窗口中,我想: <input type="button" onClick="RunCallbackFunction();" /> 问题是如何创build这个OpenNewWindow和RunCallbackFunction函数。 我虽然关于发送函数的名称作为查询参数到新窗口(其中服务器端脚本在生成的孩子的HTML中生成适当的函数调用),这是有效的,但我想在是否有另一种或更好的方式来完成这可能是一些甚至不需要服务器端修补的东西。 纯粹的JavaScript,服务器端解决scheme和jQuery(或其他框架)都欢迎。
我通过Chrome扩展上传文件作为表单数据,我的代码如下所示。 这里的问题是,文件浏览窗口打开了一秒钟,然后消失。 该问题仅在Mac OS中出现。 manifest.json的: "background": { "scripts": ["jszip.js", "background.js"] }, background.js: chrome.runtime.onMessage.addListener(function (msg) { if (msg.action === 'browse') { var myForm=document.createElement("FORM"); var myFile=document.createElement("INPUT"); myFile.type="file"; myFile.id="selectFile"; //myFile.onclick="openDialog()"; myForm.appendChild(myFile); var myButton=document.createElement("INPUT"); myButton.name="submit"; myButton.type="submit"; myButton.value="Submit"; myForm.appendChild(myButton); document.body.appendChild(myForm); } }); popup.js: window.onload = function () { chrome.runtime.sendMessage({ action: 'browse' }); }
因为我很懒,所以我创build了一个基本上只是console.log的缩写的函数log : function log() { console.log.apply(console, arguments); } 每当我打电话给我的时候,我都会在Google Chrome浏览器的开发者工具中看到logging的项目,在右侧显示logging项目的行号。 但是,这个行号总是相同的,因为实际的console.log调用位于代码中的一个特定位置(也就是上面声明log函数的地方)。 我也试过的只是: var log = console.log; 但是这总是会抛出一个错误: Illegal invocation 。 奇怪,但我想这不是一个可能性。 我怎样才能做一个console.log快捷方式,开发者工具显示log被调用的行号,而不是实际的console.log调用的位置?
我正在做一些FF附加开发,我看到这样的语法: var {Cc, Ci} = require('chrome'); 只是好奇这是什么语法,如果它是特殊的FF发展或其他。