[英]JavaScript code not working IE8
我试图使链接有效,我们单击以使用JavaScript更改网站的语言。 这是HTML代码:
'<form action="" method="post" name="currlang">'.
'<input type="hidden" name="languageval" value="'.$session->value("language").'"/>'.
'<a onclick="langa(this, \'en\');" class="langs'.($session->value("language")=='en'?" active":"").'" id="en"></a>'.
'<a onclick="langa(this, \'it\');" class="langs'.($session->value("language")=='it'?" active":"").'" id="it"></a>'.
'<a onclick="langa(this, \'pl\');" class="langs'.($session->value("language")=='pl'?" active":"").'" id="pl"></a>'.
'</form>'.
和这里的JavaScript:
function langa(obj, valu) {
document.getElementsByName("languageval")[1].value=valu;
document.getElementsByName('currlang')[1].submit();
}
该脚本可以在新的浏览器(Firefoxe,Opera,Chrome,IE9)上正常运行,但是在IE8上进行测试时会出现错误:
“'document.getElementsByName(...)。1'为null或不是对象”。
经过一番研究后,我发现IE8及更高版本不支持getElementsByName()
,也许解决方案是使用jQuery,这是我需要帮助的地方。 如何使用jQuery或不使用jQuery?
您可以尝试使用ID
或class
代替name
来达到相同的目的。
例:
<div id="foo">This is id of foo</div>
<div class="choo">This is class of choo</div>
然后,如果您使用ID
使用:
document.getElementById('foo');
与class
使用:
document.getElementsByClassName('choo');
我希望这有帮助!
为此,您需要将名称切换为Id。
<script type="text/javascript" language="javascript">
function langa (obj, valu){
$("#languageval").val(valu);
$("#currlang").submit();
}
</script>
#将使用ID提取元素,而val()是元素值的获取/设置。
编辑:将类型和语言标签添加到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.