對于我們的網站,我們以前使用 Internet 瀏覽器,它完全沒有錯誤,但從昨天開始我們遷移到現代瀏覽器,當我們點擊時,我們Uncaught TypeError: document.hwinv.datatyp.options.focus is not a function在開發人員工具中收到錯誤訊息。錯誤導致document.hwin.datatyp.options.focus();在線。在 Edge 中使用之前,它完全沒問題,現在,它導致了那個錯誤。我可以知道我該如何解決嗎?添加了 JS Fiddle 鏈接以進行檢查。另外,我看到添加了 setTimeout 但我不知道它是如何作業的。
JsFiddle 鏈接,你可以看到網頁的底部,有 2 個按鈕,如果我點擊這些按鈕,導致 .focus() 的錯誤
function gonext()
{
var myIndex = document.hwinv.datatyp.options.selectedIndex;
var chkvalue=document.hwinv.datatyp.options[myIndex].value;
if(!(chkvalue))
{
document.hwinv.datatyp.options.focus();
alert("Please select Hardware Type!");
}
else
{
document.hwinv.step.value='11';
document.hwinv.submit();
}
}
<body style="margin=0px;" alink="#0000ff" vlink="#0000ff" bgcolor="#ffffff" window.focus="document.hwinv.datatyp.options.focus();">
<form name="hwinv" method="post" action="inventory.php" target="bottomview">
uj5u.com熱心網友回復:
歡迎來到 StackOverflow!
好家伙。如果這是您的網站所擁有的那種 HTML,那么遷移它以使用更“現代”的 HTML、CSS 和 JS 將是一個相當長的程序。但它必須做,現在 IE 正式死了。
替代方案:在 Edge 中使用“Internet Explorer 模式”
您可能不知道有一種方法可以將 Edge 切換到運行站點的方式幾乎與 IE 的運行方式相同。這可能足以讓您的網站再次運行。我找到了一些關于如何做到這一點的體面說明。
但是,我不會將其作為長期解決方案。在某些時候,您將需要遷移此站點以使用 HTML5、CSS3 和現代 JS。但它可能會在緊要關頭幫助你。
修復你的代碼
首先,關于例外的問題的具體答案是選擇輸入的屬性focus()上不存在該方法。.options相反,它存在于選擇輸入物件本身上。
但我們也想處理您發布的片段中的其他過時標記。
window.focus="..."不是一回事。元素上有on____屬性 - 例如onfocus在您的情況下,但通常認為使用它是不好的做法。相反,在 JS 代碼中注冊一個事件處理程式,如下所示。style="margin=0px"是錯的。在行內樣式屬性中,語法是property: value,而不是property=value。alink,vlink并且bgcolor屬性應該替換為適當的 CSS,就像我在下面所做的那樣。alink對應body a,vlink對應body a:visited,bgcolor對應body { background-color: white; }。
function gonext() {
var myIndex = document.hwinv.datatyp.options.selectedIndex;
var chkvalue = document.hwinv.datatyp.options[myIndex].value;
if (!(chkvalue)) {
document.hwinv.datatyp.focus();
alert("Please select Hardware Type!");
} else {
document.hwinv.step.value = '11';
document.hwinv.submit();
}
}
document.addEventListener('DOMContentLoaded', function () {
document.hwinv.datatyp.focus();
});
body {
margin: 0;
background-color: white;
}
body a {
color: blue;
}
body a:visited {
color: blue;
}
<body>
<form name="hwinv" method="post" action="inventory.php" target="bottomview">
<select name="datatyp">
<option>Hammer</option>
<option>Spanner</option>
<option>Other</option>
</select>
</form>
</body>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/491748.html
標籤:javascript
