为了账号安全,请及时绑定邮箱和手机立即绑定

浏览器不支持form.all方法

浏览器不支持form.all方法

慕容森 2019-03-03 12:45:10
十几年前的系统,只支持ie,里面针对表单的处理大量使用了form.all("itemname")方法,导致在目前IE外的主流浏览器上无法运行除了逐个修改为form["itemname"]之外,请问有没有别的办法可以直接改写form.all方法?比如引入一个公用js文件,在js文件中对form.all方法进行重写?谢谢!
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

DEMO,你可以再chrome和ie中看一下,看上去就是查找所有标签就完了。form.all == form.getElementsByTagName('*')。但是你传入itemname当做方法用的。测试了一下发现idname都可以查找可以改成

if(form.all === undefined){    form.all = function(name){        return form[name]
    }
}



查看完整回答
反对 回复 2019-03-03
?
GCT1015

TA贡献1827条经验 获得超4个赞

更新-2019年2月12日17:46:15
可以看到form.__proto__HTMLFormElement,可以直接修改这个的HTMLFormElement.prototypeHTMLFormElement.prototype===form.__proto__搞定了。你可以去上面那个demo里面看


var _form = document.createElement('form')if(!_form.__proto__.all){
  _form.__proto__.all = function(name){      return this[name]
  }
}

查看完整回答
反对 回复 2019-03-03
  • 2 回答
  • 0 关注
  • 532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信