草庐IT

javascript - 检测浏览器关闭/导航到其他页面并注销的最佳方法

我正在用GWT编写应用程序,我需要检测用户何时离开我的应用程序或何时关闭浏览器窗口(onUnload事件)并执行注销(session失效和其他一些清理任务)。注销操作由servlet执行。我目前通过连接到onUnload()事件并打开一个指向注销servlet的新窗口来执行此操作。有更好的方法吗?欢迎任何其他建议。 最佳答案 看起来GWT确实为此举办了一个事件。ClosingEvent.看起来你需要实现一个ClosingHandler 关于javascript-检测浏览器关闭/导航到其他

javascript - Squire 正在打破其他测试

我正在使用Karma、Jasmine、Jasmine.Async、Sinon和Chai。好消息...这个测试工作正常。依赖关系被mock,spy被调用,故意破坏测试对象导致测试失败。define(['chai','squire'],function(chai,Squire){varshould=chai.should(),async=newAsyncSpec(this),subject,injector=newSquire();describe('EventsView',function(){describe('whenaneventisclicked',function(){varm

javascript - 对远程站点的本地 AJAX 调用在 Safari 中有效,但在其他浏览器中无效

我正在维护一个使用Javascript的网站。该脚本使用jQuery并从通常托管站点的服务器加载一些内容。为了在维护网站时方便,我在我的iMac上运行网站的本地副本。当我使用Safari时,这工作得很好。但是Firefox、Opera和Chrome拒绝工作。我想这是因为跨域策略。(我无法用IE对此进行测试,因为IE必须在我的iMac上的虚拟机中运行,因此无法访问任何本地文件)在Firefox和其他浏览器中是否有设置可以告诉浏览器可以使用本地javascript从本地html页面ajax加载位于远程服务器上的文件?简而言之:这是我的html页面:sometitle这是myScript.j

javascript - 如何在 div 等其他元素上使用 Angular 表单验证?

我正在使用以下代码使用Angular表单验证Username:Usernameisrequired.但是如果我想这样使用:Username:Usernameisrequired.但这行不通。有什么办法可以完成这项工作吗?不使用任何其他库。jsfiddle:link 最佳答案 您可以使用ngForm指令(here)来启用$pristine,$dirty,$valid,$invalid其中的服务:这样定义就可以了:举个例子:http://jsfiddle.net/s5efjzue/ 关于ja

javascript - 如何使用 AngularJS 处理文档点击并通知其他 Controller ?

我使用AngularJS创建了一个水平下拉菜单。菜单部分由一个名为menuController的AngularController管理。实现了标准菜单行为,因此悬停时主菜单项会突出显示,除非它被禁用。单击主菜单项时,子菜单切换。如果子菜单处于打开状态,我希望它在用户单击文档上的其他任何地方时消失。我试图创建一个指令来监听文档点击事件,但不确定如何通知菜单Controller。我应该如何以AngularJS的方式实现这个场景?部分工作OriginalPlunk没有文档点击处理机制。更新:根据回答的建议,我采用了Brodcast方法并更新了脚本以反射(reflect)我的最新更改。它按照我

javascript - 如何将选定的 div 置于所有其他 div 之上

我在屏幕上有一堆div。我想要做的是,当我选择任何div时,我希望它的zIndex始终高于所有其他div。在我的应用程序中,每当我选择一个div并将其放在其他div之上时,我都需要重复执行此操作。这可以使用Javascript吗? 最佳答案 在某些情况下,您可以在不直接使用CSS的情况下将元素置于顶部。如果将DIV放置到body标记或另一个父元素下,则可以将其重新附加到父元素。JavaScript会将它移动到子列表中的最后一个位置,这将以“自然”的方式将该元素带到顶部。例子:myElement.parentNode.appendCh

javascript - Node.js:执行多个异步操作然后再做其他事情的最佳方式?

在下面的代码中,我试图一次性发出多个(大约10个)HTTP请求和RSS解析。我在需要访问和解析结果的URI数组上使用标准的forEach结构。代码:vararticles;feedsToFetch.forEach(function(feedUri){feed(feedUri,function(err,feedArticles){if(err){throwerr;}else{articles=articles.concat(feedArticles);}});});//CodeIwanttorunonceallfeedUrishavebeenvisited我知道在一次调用函数时我应该使用

javascript - 遍历 children 的 children 并为所有 input 添加函数,同时保持其他 children 不变

我一直在尝试让它工作一段时间,但不确定如何执行以下操作。我的表单组件有包含常规html标记和输入的子组件。如果child是输入,我想添加attachToForm和detachFromForm函数。如果它不是输入,我想继续遍历子项以确保该元素没有子输入字段。无论该元素是否是输入,我仍然希望它出现在我的页面上,我只是想将功能添加到输入。问题是我只能让我的函数只返回输入,删除标签和标题。我知道那是因为我只向newChildren添加带有输入的元素,但是如果我将其他元素推送到elseif部分,我会得到重复项,我可以想到另一种方法来执行此操作。我不确定我是不是不了解基本的JS还是脑子有问题。Re

javascript - 在 Jasmine 中,array.includes 不起作用(必须用其他函数代替)。为什么?

我的问题看起来很奇怪。我有一个带有一个新的、非常简单的函数的构造函数,它应该检查一个变量是否包含在一个数组中。它工作得很好(我在一个表单中使用这个函数)。但是...我无法对此函数编写任何单元测试,因为Karma/Jasmine看不到数组的“包含”函数。有人可以建议我该怎么做吗?这里的情况稍微简化了一点://要测试的构造函数vm.isNameAlreadyUsed=function(){//debutlogging:console.log("vm.allNames",vm.allNames);//output:vm.allNames['A','B','C']console.log("an

Vue中,一个组件调用其他组件的方法(非父子组件)

Vue中,一个组件调用其他组件的方法(非父子组件)场景——B页面(组件)想调用A页面(组件)中的方法;但是两个页面(组件)毫无关联(刷新A的数据)。方式一:引用式1、当前组件引入将要调用方法所属的组件这里我的当前组件要调用OrderDetail这个组件的check()方法importDetailfrom"./detail.vue";该方法定义在OrderDetail的methods属性中2、当前组件通过该组件methods属性直接调用该方法//也可以调用created、data等Detail.methods.check();方式二:vuex使用VueX定义一个属性,然后在A页面定义一个计算属性