我有一个页面,其中一些事件监听器附加到输入框和选择框.有没有办法找出哪些事件监听器正在观察特定的DOM节点以及哪些事件?
事件附件使用:
Event.observe ;addEventListener;element.onclick.是否可以确定元素是否具有单击处理程序,或更改处理程序,或使用jQuery绑定到它的任何类型的事件处理程序?
此外,是否可以确定它对于给定类型的事件有多少点击处理程序(或任何类型的事件处理程序),以及事件处理程序中有哪些功能?
我想模拟点击一个锚标记,其中包含正确的目标处理等所有额外内容.
对于锚点的DOM对象似乎有一个"[click()] [3]"方法,但并非所有浏览器都支持它.Firefox抛出此错误:
错误:anchorObj.click不是函数
它在Opera 10和Konqueror上也很奇怪,当它在周围div的onclick处理程序中调用时会导致无限点击.我想只有IE8可以正常使用它.无论如何我不想要它,因为主流浏览器大多数都有问题.
我在Mozilla论坛中找到了Firefox的替代解决方案:
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
anchorObj.dispatchEvent(evt);
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎太丑陋了.我不知道它是多么兼容,我想尽可能避免编写特定于浏览器的代码.
我不能使用location.href = anchorObj.href; 因为它不处理"目标"属性.我可以根据目标值进行一些硬编码,但我也想避免这种情况.
有建议切换到JQuery,但我不确定它处理目标属性有多好,因为我之前没有使用它.
我有协议(如http)与在Mac OS XIe中注册的第三方应用程序管理的方案,x-someapp:// someaction或类似的东西.
如何使用Google Chrome打开此网址?默认情况下,Chrome会开始在Google引擎中搜索,而不是启动App并将URL处理传递给它...
Safari推出了一些注册的App.这是对的.
Firefox和Opera询问该怎么做......我也可以启动App.
但Chrome ......不问.
我甚至试图在里面写一些带有JavaScript的HTML页面来发送XHttpRequest:
function _httpExecuteCallback()
{
if (httpRequestCallbackFunction != null) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
httpRequestCallbackFunction();
httpRequestCallbackFunction = null;
}
}
}
}
function _httpGet(url, callbackFunction)
{
httpRequest = false;
httpRequestCallbackFunction = callbackFunction;
httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = _httpExecuteCallback;
httpRequest.open('GET', url, true);
httpRequest.send(null);
}
_httpGet('x-someapp://test',function(){})
Run Code Online (Sandbox Code Playgroud)
没有结果......
假设我有2个链接a1和a2,并且隐藏了a2.当用户点击a1时,我想模拟点击a2.如何用jQuery完成?