`
zhouyrt
  • 浏览: 1159333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

仅Firefox中链接A无法实现模拟点击以触发其默认行为

 
阅读更多

偶然发现之前写的事件模块在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触发模拟鼠标点击事件

    本文详细介绍了如何使用JavaScript来触发模拟的鼠标点击事件,并提供了IE浏览器和其他现代浏览器(例如Chrome、Firefox)中实现的示例代码。 首先,要理解事件触发器的概念。事件触发器是一种机制,它使得开发者...

    Firefox不支持click方法的解决

    这意味着在 Firefox 浏览器中,不能使用 click 方法来触发非 input 元素的点击事件。 解决方法是使用 JavaScript 来模拟点击事件。可以使用以下方法来实现: function invokeClick(element) { if(element.click) ...

    关于firefox下img元素拖拽效果处理

    2. Chrome DevTools:虽然不是Firefox,但其提供的元素拖放模拟功能也可用于测试Firefox下的拖放行为。 3. Dragula:一个跨浏览器的拖放库,可以帮助简化拖放实现,支持Firefox。 总结,处理Firefox下的img元素拖拽...

    google firefox 粘贴板

    标题中的“google firefox 粘贴板”指的是Google Chrome和Firefox等主流浏览器的剪贴板功能,这是一种在网页上复制和粘贴文本、图像或其它数据的技术。在Web开发中,这种功能通常通过JavaScript实现,允许用户在...

    firefox下溢出部分省略号显示

    在Firefox浏览器中,开发者可以利用CSS属性来实现这一效果,使得当文本内容超出指定区域时,以省略号(...)的形式隐藏多余的部分。这一技术在网页设计中尤为实用,可以保持页面的整洁和易读性。 首先,我们需要了解...

    JS 按钮点击触发(兼容IE、火狐)

    在JavaScript中,按钮点击事件是常见的交互操作,用于响应用户对按钮的点击行为。这篇文章将深入探讨如何使用JS实现按钮点击触发,同时确保兼容性,包括Internet Explorer(IE)和Firefox等主流浏览器。 首先,我们...

    firefox与ie css+div兼容大全

    7. **边框与背景色**:在Firefox中,给链接添加边框和背景色,应设置`display: block`和`float: left`以防止换行。有时可能需要设置高度以避免底部错位。 8. **盒模型差异**:Firefox和IE对盒模型的理解不同,导致...

    兼容火狐select样式.zip

    在Firefox中,`&lt;select&gt;`元素的默认样式通常比较朴素,可能与设计师期望的自定义界面风格不匹配。为了实现跨浏览器的样式一致性,我们需要用到CSS来覆盖或定制这些元素的默认样式。然而,由于安全性与性能考虑,...

    用javascript实现点击链接弹出&quot;图片另存为&quot;而不是直接打开

    这可以通过JavaScript来实现,让点击链接时触发“图片另存为”对话框,而不是直接加载图片。以下是一个详细的方法来实现这个功能。 首先,我们需要在HTML中设置一个隐藏的`iframe`元素,用于保存图片的URL。`iframe...

    火狐下window.event回车改Tab解决方案

    本文将详细介绍如何在Firefox(火狐)浏览器中将用户按下回车键的行为转换为按下Tab键的效果。此方案主要适用于那些希望增强用户体验、提供更加流畅表单填写流程的应用程序。 #### 背景介绍 在不同的浏览器环境下,...

    JavaScript 模拟用户单击事件

    在本例中,开发者尝试使用 jQuery 的 `click()` 方法来模拟点击事件,但发现这种方法对于超链接并不奏效,即触发了事件处理程序,但并未执行超链接的默认跳转行为。 首先,`click()` 方法是 jQuery 提供的一个便捷...

    让firefox支持IE的一些方法的javascript扩展函数代码

    总的来说,通过上述方法可以在Firefox中模拟IE的特定行为,以使得网页能够在IE和Firefox中达到类似的功能表现。不过,随着Web技术的不断发展,新的标准可能会逐渐减少这样的不兼容性问题,从而使开发者不需要再进行...

    js模拟点击以提交表单为例兼容主流浏览器

    本文将通过一个实例,即模拟点击提交表单来探讨如何实现这一功能,并确保兼容主流浏览器,包括IE、Firefox、Chrome、Opera和Safari。 首先,我们来看一个基本的HTML结构,其中包含一个表单和两个提交按钮,一个是...

    js模拟滚动条

    对于Firefox、Edge等其他浏览器,我们需要借助JavaScript来实现兼容性。 1. **创建自定义滚动条的基础结构**: 在HTML中,你可以创建一个包含滚动内容的容器,并通过CSS设置`overflow-y: scroll;`来启用垂直滚动条...

    调用浏览器程序(VB6.0源代码)

    在这段代码中,`Command1_Click`是按钮点击事件,当用户点击这个按钮时,会触发调用浏览器的行为。`URL`变量存储了你要打开的网页地址,这里以`www.example.com`为例。`Shell`函数接受两个参数:第一个是你要启动的...

    (十年积累)div+css 完全兼容ie6 ie7 IE8 IE9 和firefox方法.docx

    对于包含浮动元素的容器,需要触发其layout属性以实现高度自适应,例如: ```css .wrapper { overflow: hidden; /* 触发IE的layout */ } ``` 在实际开发中,为了确保跨浏览器兼容性,通常还需要使用CSS预...

    asp.net 文本框回车事件

    在ASP.NET中,默认情况下,当用户在一个文本框中按下回车键时,如果页面上存在按钮,则会触发页面上第一个按钮的点击事件。这种行为有时并不符合我们的需求,例如: - 我们可能希望在用户完成某个特定文本框的输入后...

Global site tag (gtag.js) - Google Analytics