在HTML结构中,我们有
<html lang="tr">
当您需要将文本转换为具有不同语言的大写/小写字母时,这非常有用。
<div style="text-transform: uppercase;" id="asd">iğüşçıâ</div>
我正在处理单页应用程序,因此无法刷新页面。
但是Web应用程序是多语言的,因此我需要在不刷新页面的情况下更改html标签的“ lang”属性。
我尝试过:
document.documentElement.lang = "en"
它不会影响 text-transform:大写; 。 如果我手动更改HTML文件中的html lang属性并重新加载页面,则效果很好。
我该怎么做?有办法吗?
谢谢。
更新: 一些Stackoverflow用户将其标记为与ajax,php有关。我敢肯定,这个问题从来没有问过。关于ajax和php的这个问题不。
答案 0 :(得分:1)
您可以使用setAttribute从元素更改或添加新属性;
document.documentElement.setAttribute("lang","tr")
function changeLangTr() {
document.documentElement.setAttribute("lang","tr")
getText()
}
function changeLangEn() {
document.documentElement.setAttribute("lang","en")
getText()
}
function getText() {
var node = document.getElementById('text')
}
p {
margin-top: 30px;
font-size: 20px;
text-transform: uppercase;
}
p.upper {
text-transform: uppercase;
}
p#info {
font-size: 12px;
color: red;
margin-top: 0;
}
<html name="html" lang="tr">
<body>
<div id="home">
<button onclick='changeLangTr()'>
Change Language TR
</button>
<button onclick='changeLangEn()'>
Change Language EN
</button>
<p id="text">
Türkçe Karakterlerin Kullanımı (iğüşçıâ)
</p>
<strong>Now:</strong>
<p id="info">
Turkish Lowercase
</p>
</div>
</body>
</html>
答案 1 :(得分:0)
您可以使用Angularjs更改语言,而无需重新加载页面。 要更改语言,可以使用angularjs $ scope并更改HTML语言,而无需重新加载。