`

从onfocus方法看浏览器的兼容性

阅读更多
        在Web Application的开发测试当中,由于存在不同的访问终端——浏览器,因此需要在不同浏览器下运行应用程序,以检验应用程序在不同的浏览器下的外观及功能上是否保持一致。尽管现在的浏览器之间的兼容性已经是相当不错,但是在对Javascript的支持上就有相当大的区别。今天就在onfocus方法上碰到了钉子。具体的代码是类似这样的:
<html>
  
<head>
     
<script>
        
function shiftFocus() {
           document.form1.list.focus();
         }

      
</script>
  
</head>
  
<body>
     
<form name="form1">
        
<input type="radio" name="group" /> Name        
        
<input type="radio" name="group" onfocus="shiftFocus()" /> Company 
        
<select name="list">
           
<option>--Please select--</option>
        
</select>
     
</form>
  
</body>
</html>
        为了说明问题,将Javascript方法中逻辑处理省略掉了。从代码中可以看到,当焦点focus在第二个RadioButton的时候,就调用shiftFocus方法,然后在shiftFocus方法中把焦点focus在下拉框。好了,将这段代码保存在一个文件中,然后先用IE打开。因为是要测试onfocus的方法,那么很自然就会想到利用tab键来移动焦点。于是就去按tab键了,你发现什么了吗? 焦点是没有办法落在第二个RadioButton上的。也许你会想,这不就是moveFocus方法起作用了吗? 咋一想,似乎是对的。那好,我们就把onfocus那段去掉看看。然后,你还是发现焦点没有办法落到第二个RadioButton上。这个是第一点问题了。既然用tab键不成,那么就用鼠标来吧。先把刚刚删除的onfocus那段先恢复回去,然后再来试试看。当你点击了第二个RadioButton的时候,一个很奇怪的现象发生了,RadioButton变灰了,感觉就是被disable掉了一样。但这只是好像,因为这个RadioButton并没有disable掉,你仍然可以点击它,onfocus方法仍然被调用。这就是第二点问题了。如果你使用Netscape或者Firefox打开,则以上两个问题都不存在。
        这里只是举了一个简单的例子,还有一些更加希奇古怪的事情,都没有办法讲其描述出来。总之,整体感觉IE对于Javascript的支持是最差的,而Netscape则最好。
分享到:
评论

相关推荐

    CSS浏览器的兼容问题

    随着Web技术的发展,前端开发变得越来越复杂,特别是CSS的跨浏览器兼容性问题一直是开发者们头疼的问题之一。不同的浏览器对CSS的支持程度不同,导致同样的一段CSS代码在不同的浏览器下可能会呈现出完全不同的效果。...

    最全的CSS浏览器的兼容问题

    本文针对CSS浏览器兼容性问题进行了较为详细的介绍,包括去除a链接虚线框、实现背景透明、垂直居中、解决IE6的margin加倍问题、浮动元素间的间距问题、解决IE的宽度和高度问题以及解决DIV浮动文本3像素的bug等。...

    浏览器事件大全.txt

    - **兼容性**:IE3、Netscape2(N2)。 - **应用场景**:常用于按钮点击事件处理。 **1.2 ondblclick** - **定义**:当用户双击元素时触发。 - **兼容性**:IE4、Netscape4(N4)。 - **应用场景**:可用于编辑模式...

    input框中出现提示文字(兼容ie 火狐 谷歌)

    然而,浏览器的兼容性问题一直是开发者面临的一大挑战,特别是对于较老版本的IE浏览器。`placeholder`属性是HTML5引入的新特性,它允许我们在`&lt;input&gt;`元素内设置提示文本,但遗憾的是,这个特性在IE8及以下版本并不...

    兼容各浏览器 CSS回到顶部代码

    #### 三、兼容性考虑 为了确保该功能能够在不同浏览器上正常运行,需要注意以下几点: - 使用标准的CSS属性和值。 - 避免使用某些非标准或特定于某个浏览器的属性。 - 测试在不同版本的主流浏览器(如Chrome、Fire...

    js中的eventType事件及其浏览器支持性介绍.docx

    ### JavaScript中的eventType事件及其浏览器支持性介绍 #### 一、概述 ...此外,随着技术的发展,新的事件类型和API不断涌现,开发者也需要持续关注最新的技术和标准,以保持代码的先进性和兼容性。

    兼容多种IE的javascript日期控件

    在IT行业中,网页开发经常会遇到跨浏览器兼容性问题,尤其是涉及到JavaScript时。"兼容多种IE的javascript日期控件"这个主题就是针对这个问题的一个解决方案。它是一个经过改造的calendar日期控件,旨在确保在不同...

    js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)

    在JavaScript编程中,确保代码在不同的浏览器上具有良好的兼容性是一项重要的任务。本文将深入探讨如何编写兼容多浏览器(如IE6/7/8、Firefox和Chrome)的回车键和鼠标焦点事件处理代码。 首先,让我们分析给出的...

    Chrome浏览器的自动保存密码提示功能禁用方法

    总结来说,禁用Chrome浏览器的自动保存密码提示需要理解不同浏览器对`autocomplete`属性的支持情况,并结合JavaScript事件处理来实现跨浏览器的兼容性。通过动态改变输入框类型和正确设置`autocomplete`属性,可以在...

    鼠标事件大全 包括不同浏览器是否支持 鼠标事件非常完整

    ### 鼠标事件大全与跨浏览器兼容性详解 在Web开发中,了解并掌握鼠标事件及其在不同浏览器中的支持情况对于创建响应式和交互性强的网页至关重要。本文将全面解析一系列鼠标事件,并探讨它们在Internet Explorer(IE...

    多浏览器事件[总结].pdf

    以上是多浏览器事件的概述,了解这些事件及其浏览器兼容性对于创建跨浏览器的Web应用非常重要。开发者需要注意,由于浏览器差异,有时需要使用特定的解决方案(如jQuery或其他库)来实现一致的行为。

    javascript版placeholder解决一些浏览器不支持placeholder属性的问题

    在现代Web开发中,`placeholder`属性是HTML5的一个重要特性,它允许我们在输入框(`&lt;input&gt;`或`&lt;textarea&gt;`)内设置提示文本,当用户...这个方法不仅提高了网站的兼容性,也提升了用户体验,使得网页更加友好和易用。

    JS鼠标键盘触发函数大全

    - **兼容性**:IE3 | N2 | O3 - **`onDblClick`**:当用户双击鼠标左键时触发。常用于执行与单次点击不同的操作。 - **兼容性**:IE4 | N4 | O - **`onMouseDown`**:当用户按下鼠标按钮(通常是左键)时触发。可...

    跨浏览器开发经验总结(一) HTML标记

    在进行跨浏览器开发时,首要任务是确保代码的兼容性和标准化。以下是一些关键知识点: 1. **DOCTYPE声明**:DOCTYPE声明用于指明文档遵循的HTML或XHTML规范。例如,HTML4.01的声明为`&lt;!DOCTYPE ...

    JavaScript中常见的一些事件

    然而,由于不同浏览器对事件的支持程度存在差异,开发者在实际应用中需要考虑使用polyfills或库(如jQuery)来实现更广泛的浏览器兼容性。此外,随着Web技术的不断演进,一些新的事件和API(如Intersection Observer...

    盲人站长深恶痛绝的onfocus=”this.blur()”

    同时,为了保证在所有浏览器中的兼容性和无障碍访问,可以采用条件注释或者检测浏览器类型的方式,为IE添加额外的样式处理,例如使用expression表达式。然而,expression的性能问题应当引起注意,因此应谨慎使用。 ...

    仿HTML5 placeholder 效果.rar

    HTML5的`placeholder`属性是...虽然现代浏览器大多已经支持,但在处理跨浏览器兼容性问题时,了解如何用JavaScript和CSS来模拟`placeholder`效果是非常有必要的。这个压缩包提供的解决方案可以作为一个很好的学习资源。

    JSP中调用js日期控件

    - 验证浏览器兼容性,虽然大部分现代浏览器都支持JavaScript,但老版本的浏览器可能存在问题,需要做适当的兼容性处理。 6. **优化用户体验**: 考虑到用户友好性,可以设置默认日期、提供清除按钮、限制日期范围...

Global site tag (gtag.js) - Google Analytics