我试图为网页进行翻译,但不断收到错误" changeLocale()"没有定义
<script type="text/javascript">
window.onload=function(){
function changeLocale(){
if (document.getElementsByClassName('locFin').style.display == 'block') {
document.getElementsByClassName('locFin').style.display = 'none';
document.getElementsByClassName('locEn').style.display = 'block';
} else{
document.getElementsByClassName('locEn').style.display = 'none';
document.getElementsByClassName('locFin').style.display = 'block';
}
}
}
</script>
我是如何定义这个功能的,以及我在哪里定义它。
<button onclick="changeLocale();">Change</button>
答案 0 :(得分:1)
changeLocale()尚未在全局范围内定义,它仅在window.onload范围中定义。尝试在window.onload处理程序之外定义函数。
<script type="text/javascript">
function changeLocale(){
if (document.getElementsByClassName('locFin').style.display == 'block') {
document.getElementsByClassName('locFin').style.display = 'none';
document.getElementsByClassName('locEn').style.display = 'block';
} else{
document.getElementsByClassName('locEn').style.display = 'none';
document.getElementsByClassName('locFin').style.display = 'block';
}
}
</script>
或者如果您在加载后必须定义它,请尝试
<script type="text/javascript">
var changeLocale;
window.onload=function(){
changeLocale = function(){
if (document.getElementsByClassName('locFin').style.display == 'block') {
document.getElementsByClassName('locFin').style.display = 'none';
document.getElementsByClassName('locEn').style.display = 'block';
} else{
document.getElementsByClassName('locEn').style.display = 'none';
document.getElementsByClassName('locFin').style.display = 'block';
}
}
}
</script>
按照上面的定义后,您的按钮应该可以正常工作。
<button onclick="changeLocale();">Change</button>
答案 1 :(得分:0)
该功能可以独立存在,它不应该在window.onLoad
内。
答案 2 :(得分:0)
您必须删除window.onload=function
之外的函数changeLocale。这是因为范围问题。
在window.onload函数中定义changeLocale时,changeLocale仅在window.onload函数的范围内定义。在html中,onclick
只能访问全局窗口对象的范围。由于它在窗口范围内没有看到名为changeLocale的函数,因此认为它未定义。要解决这个问题,你必须在window.onload作用域之外使用changeLocale函数并在&#34; global&#34;上声明它。窗口范围。