document.forms['form1']和document.form1有什么区别?

DragonDreammer 2011-01-28 12:21:38
在asp.net页面自动生成的JS代码中看到了这样的代码:

if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1) {
theform = document.forms["Form1"];
}
else {
theform = document.Form1;
}
从代码来看,应该是判断如果是网景浏览器,就执行theform = document.forms["Form1"]; 否则就执行else中的内容。
应该是为了解决浏览器差异而写的,但是我做了测试:

写一个JS方法
function doTest()
{
alert(document.forms["form1"]);
alert(document.form1);
}
再用一个按钮来调用它
<input id="ButtonTest" type="button" value="DifferentTest" onclick="doTest()"/>

在IE中执行这个测试,谈出了两次Object,也就是说两种方式都能获取到form1,那么为什么在asp.net中还要自动生成判断是否为网景浏览器的代码呢?恳请指点!

...全文
561 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
txenergy 2012-01-09
  • 打赏
  • 举报
回复

顶一下,刚就遇到这个问题。
DragonDreammer 2011-02-04
  • 打赏
  • 举报
回复
document.form1遍历一次
document.forms["form1"]遍历两次
深一步理解,想想在新华字典中查“仁”这个字:
从整本字典中找“仁”(遍历一次)
从索引中先找单人旁(相当于数组),再找“仁”这个字(遍历两次)
可是遍历两次却比遍历一次要快!但是这种情况是针对在很多内容中进行归类查找时而用
而本问题是针对当前页面而言,一个单页面的元素内容并不会很多,相当于一个作坊中直接找某某负责人会很快,而不需要像酒店那样分门别类的从管理名单中去找,直接找会更快!
今天是春节结贴,回答的人每人有分,祝大家新年快乐!也祝自己今年Find一个好工作!
wangyuzx1985 2011-01-30
  • 打赏
  • 举报
回复
貌似是传说中的,回字有四种写法。
Acesidonu 2011-01-30
  • 打赏
  • 举报
回复
document.form1遍历一次
document.forms["form1"]遍历两次
yuanyue0540 2011-01-30
  • 打赏
  • 举报
回复
一个是遍历的找 一个是直接找
DragonDreammer 2011-01-28
  • 打赏
  • 举报
回复
也就是说所有浏览器都是支持document.forms["form1"]这样的写法的。但是微软还要加上一个判断,难道是document.form1这样的取值方式比document.forms["form1"]效率要高?网景只支持document.forms["form1"]这样的写法,所以对非网景的浏览器就采用document.form1这样的取值方式?
但我觉得document.forms["form1"]是从直接指定从所有的forms数组里面找form1,而document.form1是从全部的document中来找,应该效率更低才对啊?继续求解中。。。
DragonDreammer 2011-01-28
  • 打赏
  • 举报
回复
在火狐,谷歌,苹果中都测试了,没有任何区别。
KK3K2005 2011-01-28
  • 打赏
  • 举报
回复
多弄点不同的浏览器试试doTest
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dragondreammer 的回复:]
也就是说所有浏览器都是支持document.forms["form1"]这样的写法的。但是微软还要加上一个判断,难道是document.form1这样的取值方式比document.forms["form1"]效率要高?网景只支持document.forms["form1"]这样的写法,所以对非网景的浏览器就采用document.form1这样的取值方式?
但我觉得document.forms["……
[/Quote]
从寻址长度来讲,document.form1比document.forms["form1"]要短。

这象老总和手下某个部门经理的通讯关系一样,直接拨这个部门经理的手机,比通过公司的内部电话找到该级部门再找到该部门经理,要快。

因为,无论你使用不使用,线路本来已经摆在那里了。你愿意走直线还是曲线呢。
guoerwei 2011-01-28
  • 打赏
  • 举报
回复
写法不是W3C吧……

不过,其实现在的浏览器们都虚心接受了这个不标准。
flyerwing 2011-01-28
  • 打赏
  • 举报
回复
document.forms["form1"],document.form1
好象没什么不同吧,好象效率也一样吧.

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧