更改HTML页面的lang属性而无需重新加载

时间:2020-04-06 14:02:59

标签: javascript html

在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的这个问题

2 个答案:

答案 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语言,而无需重新加载。