[英]Cannot read property 'lang' of undefined at ToolbarStrings.setLocale
我收到以下錯誤
Uncaught TypeError: Cannot read property 'lang' of undefined
at ToolbarStrings.setLocale (toolbar-min.js:9)
at Object.start (toolbar-min.js:41)
at toolbar-min.js:41
ToolbarStrings.setLocale @ toolbar-min.js:9
start @ toolbar-min.js:41
(anonymous) @ toolbar-min.js:41
對於以下代碼
function ToolbarStrings(){var a="EN";this.setLocale=function(){
var b=document.getElementsByTagName("<html>")[0],
c=document.getElementsByTagName("<body>")[0];
this.locale=(b.lang?b.lang:b.getAttribute("xml:lang")?b.getAttribute("xml:lang"):c.lang?c.lang:a).substr(0,2).toUpperCase(),
this.locale&&traduction[this.locale]||(this.locale=a),
this.ForceDefaultLocale&&(this.locale=this.ForceDefaultLocale)
}
實際上這只是我正在使用的這個JavaScript文件的一部分,我不知道語法或其他東西是否有問題
你能幫我找到解決方案嗎?
<html lang="en">
但是行document.getElementsByTagName("<html>")[0]
沒有返回任何內容,因此b.lang
失敗的原因。 您的文檔中沒有<<html>>
標記,因為getElementByTagName
正在括號內查找該名稱。 你需要document.getElementsByTagName("html")
let htmlTags = document.getElementsByTagName("html"); let htmlTagsInExtraAngleBrackets = document.getElementsByTagName("<html>"); console.log('number of elements selected with "html"', htmlTags.length) console.log('number of elements selected with "<html>"', htmlTagsInExtraAngleBrackets.length)
改變這個:
var b=document.getElementsByTagName("<html>")[0],
c=document.getElementsByTagName("<body>")[0];
對此:
var b=document.getElementsByTagName("html")[0],
c=document.getElementsByTagName("body")[0];
說明:
該錯誤表明您正在嘗試對undefined
的變量使用lang
屬性。 這表明b
或c
變量未定義。
原因是它無法通過標記名稱<html>
找到元素,因為它無效。 它應該是html
(沒有尖括號)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.