首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法读取ToolbarStrings.setLocale处未定义的属性“lang”

无法读取ToolbarStrings.setLocale处未定义的属性“lang”
EN

Stack Overflow用户
提问于 2019-05-31 12:48:30
回答 2查看 476关注 0票数 0

我得到了以下错误

代码语言:javascript
代码运行次数:0
运行
复制
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

对于以下代码

代码语言:javascript
代码运行次数:0
运行
复制
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文件的一部分,我不知道语法或其他方面是否有问题

你能帮我找到解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-31 12:52:50

改变这一点:

代码语言:javascript
代码运行次数:0
运行
复制
var b=document.getElementsByTagName("<html>")[0],
    c=document.getElementsByTagName("<body>")[0];

对此:

代码语言:javascript
代码运行次数:0
运行
复制
var b=document.getElementsByTagName("html")[0],
    c=document.getElementsByTagName("body")[0];

解释:

错误是指出您试图在一个变量(即lang )上使用undefined属性。这表示bc变量未定义。

原因是它找不到标签名<html>的元素,因为这是无效的。它应该是html (没有尖括号)。

票数 0
EN

Stack Overflow用户

发布于 2019-05-31 12:52:43

代码似乎试图获得HTML中的语言声明。这个看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
<html lang="en">

但是document.getElementsByTagName("<html>")[0]行没有返回任何内容,因此b.lang失败的原因。文档中没有<<html>>标记,因为getElementByTagName正在括号中查找该名称。你需要document.getElementsByTagName("html")

代码语言:javascript
代码运行次数:0
运行
复制
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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56395418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档