繁体   English   中英

JavaScript代码无法正常运行IE8

[英]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?

您可以尝试使用IDclass代替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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM