我在Stack Overflow和Google中搜索了标题中的特定错误消息,但我没有找到它(在JavaScript编码的上下文中,而不是浏览器设置).在我的网站上,每10秒调用五个函数.这些函数执行以下操作:
但是,如果用户登录但是不活动(不使用鼠标或按任何键)大约15分钟,当我使用Chrome"检查元素"时收到以下错误消息:
Failed to load resource: net::ERR_NETWORK_IO_SUSPENDED // (x 5)
Uncaught Type Error: Cannot read property 'combinedfiletimeinput' of undefined //one of my previously defined form values is now not defined
Run Code Online (Sandbox Code Playgroud)
此时,用户的新电子邮件计数,新IM计数等变为空白(之前它们是整数).用户所要做的就是刷新页面或转到另一个页面重新连接,所以这不是什么大不了的事.
我的黑客解决方案是使用JavaScript计时器在15分钟内没有任何以下事件时自动注销用户:
有没有办法防止出现"无法加载资源"错误?
更新:这似乎发生在用户的设备在登录时休眠/休眠时...当用户重启设备时.这是在Chrome的Inspect Element,Firebug等上可以看到错误消息的时候.
更新10/02/2014:我现在已将五个setTimeout函数压缩为一个大的setTimeout函数.此外,已删除在名为"combinedfiletimeinput"的输入中保存修改时间的表单,现在我以不同方式处理文件修改时间.
以下是Chrome开发者工具日志的屏幕截图,显示错误.我添加了"mysite"来代替我的网站名称和"filename"来代替实际的文件名.我还打开了外部JavaScript文件的名称,剩下的就是.js(对不起,但我只是要小心:))我剪掉了一些截图,所以文字足够大了阅读.

正如您在屏幕截图中看到的,请求处理前三个请求的OK.然后我"睡觉"我的设备,然后重新打开我的设备.接下来的两个请求就是错误(红色).在前两个错误之后,请求开始正常处理(带有黑色文本的行,带有红色文本的行之后).控制台清楚地显示错误消息.
我写了一个谷歌浏览器扩展程序,我想要使用我的扩展程序的网站要求我点击或标签到文本框(因为我认为它只运行javaScript验证"onClick").我可以使用我的扩展程序在框中获取文本:
document.getElementById("input1").value = 'test';
Run Code Online (Sandbox Code Playgroud)
但是当我点击提交时,它认为我没有在"input1"文本框中输入任何内容,因为我从未点击过它或在其上打勾.
有人可以帮我解决这个问题吗?
我正在使用Selenium编写一些UI测试,并且使用Dojo工具包,我有一个JavaScript Tree控件.
我已经使用Dojo提供的示例为树的每个节点实现了一个上下文菜单,但是我需要Selenium测试来"调用"树节点上的右键单击,但我无法使其工作.测试只是不通过JavaScript模拟右键单击事件,并且上下文菜单不会显示.
有没有人有任何使用Dojo和Selenium在上下文菜单上调用右键的经验?或者对如何做到这一点有任何想法?
我正在尝试编写一个Vimperator插件,允许使用提示模式在下拉菜单上模拟鼠标.我有提示模式工作,可以正确选择附加鼠标悬停事件的元素.问题是我的模拟鼠标功能不起作用.这就是我目前拥有的:
function SimulateMouseOver(elem)
{
var evt = elem.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('mouseover',true,true,
elem.ownerDocument.defaultView,0,0,0,0,0,
false,false,false,false,0,null);
var canceled = !elem.dispatchEvent(evt);
if(canceled)
alert('Event Cancelled');
}
Run Code Online (Sandbox Code Playgroud)
上面的代码适用于某些页面,但不适用于其他页面.例如,它不适用于AccuWeather.任何关于如何模拟鼠标的想法都适用于大多数页面?
作为标题,我试图在javascript中模拟HTML5拖放事件.
我查看了jquery.ui.simulate以及这里的模拟函数.两者似乎都能够通过模拟与jQuery UI对象一起使用的mousedown,mousemove和mouseup来模拟拖放.
但是像拖放演示站点这样的页面中的拖放事件似乎不能使用相同的方法进行模拟.触发mousedown似乎没有触发dragstart HTML5事件.
有没有办法让模拟mousedown/mousemove/etc启动dragstart事件,还是有办法直接模拟dragstart(然后删除)事件?
我已经尝试修改SO上的模拟功能来添加HTML5 dragstart事件,所以我可以在演示页面上尝试类似下面的内容
simulate( document.querySelector('#three'), 'dragstart')
Run Code Online (Sandbox Code Playgroud)
但是我收到错误,因为我不确定如何正确地在模拟的dragstart事件上创建dataTransfer对象.
基本上,我会接受任何答案,让我可以使用jquery.ui.simluate(或其他库)或使用修改版本的方法将元素'three' 拖动到演示拖放页面中的'bin'元素模拟我在SO上找到的功能.
如何从一个据称没有本机可点击行为的元素触发点击事件?
例如,我知道你可以简单地使用以下内容:
document.getElementById('x').click();
Run Code Online (Sandbox Code Playgroud)
但是如果'x'是'DIV'会发生什么?我有一个实现,它似乎没有触发...我得到错误(铬12):
Uncaught TypeError: Object #<HTMLDivElement> has no method 'click'
Run Code Online (Sandbox Code Playgroud)
想法?
快速编辑 - 我在这里寻找香草JS ......我喜欢在我的形象中重新发明轮子...... :-)
是否可以使用javascript模拟网页上的点击但不定义特定元素,而只是指定文档?
我本来希望做这样的事情,如果该位置碰巧有一个链接,那么这将被按下:
function simulateClick(x, y)
{
var evt = window.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
x, y, x, y, 1, false, false, false, false, 0, null);
window.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud) 我想将我的JavaScript和HTML代码分开.为此,我想确保我从不使用以下语法:
<input type="text" name="text" onClick="javascript:onClick(this)" />
Run Code Online (Sandbox Code Playgroud)
但我想挂钩onClick事件,例如上面的输入,但不必在其HTML中使用onClick属性.此外,我想保持它的实现不可知,使用原始JavaScript而不是jQuery或MooTools这样的框架(虽然,如果你希望提供那些作为插图以及原始JavaScript也会很好).
<input type="text" name="text" />
Run Code Online (Sandbox Code Playgroud) 我想使用javascript触发鼠标中键事件。是否可以使用Javascript触发鼠标中键?
我想要它,因为它正在粘贴剪贴板中的最后一个选定对象。
谢谢,吉米
我有一个附加了侦听器的链接(我正在使用YUI):
YAHOO.util.Event.on(Element, 'click', function(){ /* some functionality */});
Run Code Online (Sandbox Code Playgroud)
我希望在不涉及用户单击的另一个场景中发生相同的功能.理想情况下,我可以模拟元素上的"点击"并自动触发功能.我怎么能这样做?太糟糕了,这不起作用:
$('Element').click()
Run Code Online (Sandbox Code Playgroud)
谢谢.
javascript ×10
html ×2
browser ×1
click ×1
dojo ×1
html5 ×1
layout ×1
mouseevent ×1
mouseover ×1
mozilla ×1
selenium ×1
unit-testing ×1
vimperator ×1
yui ×1