偶然发现之前写的事件模块在Firefox5中无法触发A的默认行为了。IE/Opera/Firefox5中A具有click方法,因此模拟点击直接调用click方法即可。而标准的事件触发可以使用dispatchEvent方法。但现在FF5无法触发了A的默认行为了。如下
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Firefox5链接A无法实现模拟点击bug</title>
</head>
<body>
<a id="a1" href="http://mail.sina.com.cn">新浪邮箱</a>
</body>
<script type="text/javascript">
function dispatch(el, type){
try{
var evt = document.createEvent('Event');
evt.initEvent(type,true,true);
el.dispatchEvent(evt);
}catch(e){alert(e)};
}
var a1 = document.getElementById('a1');
dispatch(a1, 'click');
</script>
</html>
链接A,使用dispatchEvent模拟点击。测试在IE9/Safari/Chrome/Opera中均跳到了mail.sina.com.cn。唯独Firefox5没有跳过去。
由于Firefox5中给所有元素都添加了click方法(Firefox3没有),因此用click方法测试下
<a id="a1" href="http://mail.sina.com.cn">新浪邮箱</a>
<script>
var a1 = document.getElementById('a1');
a1.click();
</script>
测试还是没有跳到mail.sina.com.cn。
可见 Firefox中 两种方式都不能使其触发链接A的默认行为。可能是Firefox安全机制禁止了客户端程序员模拟A跳转,呃..
相关:
http://www.w3.org/TR/html5/elements.html#htmlelement
http://msdn.microsoft.com/en-us/library/ms536363(VS.85).aspx
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget-dispatchEvent
分享到:
相关推荐
本文详细介绍了如何使用JavaScript来触发模拟的鼠标点击事件,并提供了IE浏览器和其他现代浏览器(例如Chrome、Firefox)中实现的示例代码。 首先,要理解事件触发器的概念。事件触发器是一种机制,它使得开发者...
这意味着在 Firefox 浏览器中,不能使用 click 方法来触发非 input 元素的点击事件。 解决方法是使用 JavaScript 来模拟点击事件。可以使用以下方法来实现: function invokeClick(element) { if(element.click) ...
2. Chrome DevTools:虽然不是Firefox,但其提供的元素拖放模拟功能也可用于测试Firefox下的拖放行为。 3. Dragula:一个跨浏览器的拖放库,可以帮助简化拖放实现,支持Firefox。 总结,处理Firefox下的img元素拖拽...
标题中的“google firefox 粘贴板”指的是Google Chrome和Firefox等主流浏览器的剪贴板功能,这是一种在网页上复制和粘贴文本、图像或其它数据的技术。在Web开发中,这种功能通常通过JavaScript实现,允许用户在...
在Firefox浏览器中,开发者可以利用CSS属性来实现这一效果,使得当文本内容超出指定区域时,以省略号(...)的形式隐藏多余的部分。这一技术在网页设计中尤为实用,可以保持页面的整洁和易读性。 首先,我们需要了解...
在JavaScript中,按钮点击事件是常见的交互操作,用于响应用户对按钮的点击行为。这篇文章将深入探讨如何使用JS实现按钮点击触发,同时确保兼容性,包括Internet Explorer(IE)和Firefox等主流浏览器。 首先,我们...
7. **边框与背景色**:在Firefox中,给链接添加边框和背景色,应设置`display: block`和`float: left`以防止换行。有时可能需要设置高度以避免底部错位。 8. **盒模型差异**:Firefox和IE对盒模型的理解不同,导致...
在Firefox中,`<select>`元素的默认样式通常比较朴素,可能与设计师期望的自定义界面风格不匹配。为了实现跨浏览器的样式一致性,我们需要用到CSS来覆盖或定制这些元素的默认样式。然而,由于安全性与性能考虑,...
这可以通过JavaScript来实现,让点击链接时触发“图片另存为”对话框,而不是直接加载图片。以下是一个详细的方法来实现这个功能。 首先,我们需要在HTML中设置一个隐藏的`iframe`元素,用于保存图片的URL。`iframe...
本文将详细介绍如何在Firefox(火狐)浏览器中将用户按下回车键的行为转换为按下Tab键的效果。此方案主要适用于那些希望增强用户体验、提供更加流畅表单填写流程的应用程序。 #### 背景介绍 在不同的浏览器环境下,...
在本例中,开发者尝试使用 jQuery 的 `click()` 方法来模拟点击事件,但发现这种方法对于超链接并不奏效,即触发了事件处理程序,但并未执行超链接的默认跳转行为。 首先,`click()` 方法是 jQuery 提供的一个便捷...
总的来说,通过上述方法可以在Firefox中模拟IE的特定行为,以使得网页能够在IE和Firefox中达到类似的功能表现。不过,随着Web技术的不断发展,新的标准可能会逐渐减少这样的不兼容性问题,从而使开发者不需要再进行...
本文将通过一个实例,即模拟点击提交表单来探讨如何实现这一功能,并确保兼容主流浏览器,包括IE、Firefox、Chrome、Opera和Safari。 首先,我们来看一个基本的HTML结构,其中包含一个表单和两个提交按钮,一个是...
对于Firefox、Edge等其他浏览器,我们需要借助JavaScript来实现兼容性。 1. **创建自定义滚动条的基础结构**: 在HTML中,你可以创建一个包含滚动内容的容器,并通过CSS设置`overflow-y: scroll;`来启用垂直滚动条...
在这段代码中,`Command1_Click`是按钮点击事件,当用户点击这个按钮时,会触发调用浏览器的行为。`URL`变量存储了你要打开的网页地址,这里以`www.example.com`为例。`Shell`函数接受两个参数:第一个是你要启动的...
对于包含浮动元素的容器,需要触发其layout属性以实现高度自适应,例如: ```css .wrapper { overflow: hidden; /* 触发IE的layout */ } ``` 在实际开发中,为了确保跨浏览器兼容性,通常还需要使用CSS预...
在ASP.NET中,默认情况下,当用户在一个文本框中按下回车键时,如果页面上存在按钮,则会触发页面上第一个按钮的点击事件。这种行为有时并不符合我们的需求,例如: - 我们可能希望在用户完成某个特定文本框的输入后...