簡體   English   中英

無法在ToolbarStrings.setLocale中讀取未定義的屬性“lang”

[英]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中獲取語言聲明 這看起來像這樣:

<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屬性。 這表明bc變量未定義。

原因是它無法通過標記名稱<html>找到元素,因為它無效。 它應該是html (沒有尖括號)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM