我使用的是一个特定于ie的机构网站(即,任何修复都必须在我这边),但我想将其与Safari一起使用。网站大部分工作,但有一次我在控制台中遇到以下错误:
Uncaught TypeError: Object #<HTMLFormElement> has no method 'all'
当我深入研究Javascript时,错误来自:
function fnFocus() {
var frmCtl = document.frmAddEditAdultPosition ;
if(frmCtl !=null) {
var ctlFN = frmCtl.all("txtFirstName") ;
ctlFN.focus() ;
}
}
对all方法的调用分散在整个代码中。
我的计划是使用proxypy来修复Javascript。我假设all方法是特定于IE的,但我不知道应该用什么来替换它。
elements
集合:
frmCtl.elements["txtFirstName"] // Might be another collection if there are duplicate fields of that name
或getElementsByName
:
frmCtl.getElementsByName("txtFirstName") // Always a collection
或querySelector
:
frmCtl.querySelector('[name="txtFirstName"]') // Gets the first match
或querySelectorAll
:
frmCtl.querySelectorAll('[name="txtFirstName"]') // Always a collection