location.reload() 在 Firefox 和 Google chrome 中的不同行为
Different behavior of location.reload() in Firefox and Google chrome
我正在调用 location.reload() 而 select 用于更改语言的下拉选项
<html>
<head>
<script type="text/javascript">
function changeLanguage(){
location.reload();
}
function loadPage() {
var language = document.getElementById("lang").value;
alert(language);
}
</script>
</head>
<body onload="loadPage()">
<select name="lang" id="lang" onchange="changeLanguage()">
<option value="english">English</option>
<option value="hindi">हिंदी</option>
</select>
</body>
</html>
如果我 运行 在 Firefox 中使用此页面,它会提醒我 select 访问哪个页面。这就是我要的。但是如果我 运行 这个页面在 Google chrome 它总是给出第一个选项。
我认为在加载时,下拉菜单会重新加载,因此获取 selected 值是第一个选项。
实际上我还想 selected 加载一个偶数页。
我将这个概念应用于不同的目的,为了简化,我有 return 这个简单的代码。
我已经通过添加 cookie 解决了我的问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function changeLanguage(lang){
setCookie("flip_book_lang", lang, 7);
location.reload();
}
function loadPage(lang) {
var language = document.getElementById("lang").value;
var curr_lang = getCookie("flip_book_lang");
document.getElementById("lang").value = curr_lang;
alert(curr_lang);
}
//Source : w3schools, 023-09-2014 http://www.w3schools.com/js/js_cookies.asp
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1){
return c.substring(name.length,c.length);
}
}
return "";
}
function removeCookie(cname){
document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
}
</script>
</head>
<body onload="loadPage()">
<select name="lang" id="lang" onchange="changeLanguage(this.value)">
<option value="english">English</option>
<option value="hindi">हिंदी</option>
</select>
</body>
</html>
我正在调用 location.reload() 而 select 用于更改语言的下拉选项
<html>
<head>
<script type="text/javascript">
function changeLanguage(){
location.reload();
}
function loadPage() {
var language = document.getElementById("lang").value;
alert(language);
}
</script>
</head>
<body onload="loadPage()">
<select name="lang" id="lang" onchange="changeLanguage()">
<option value="english">English</option>
<option value="hindi">हिंदी</option>
</select>
</body>
</html>
如果我 运行 在 Firefox 中使用此页面,它会提醒我 select 访问哪个页面。这就是我要的。但是如果我 运行 这个页面在 Google chrome 它总是给出第一个选项。
我认为在加载时,下拉菜单会重新加载,因此获取 selected 值是第一个选项。
实际上我还想 selected 加载一个偶数页。
我将这个概念应用于不同的目的,为了简化,我有 return 这个简单的代码。
我已经通过添加 cookie 解决了我的问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function changeLanguage(lang){
setCookie("flip_book_lang", lang, 7);
location.reload();
}
function loadPage(lang) {
var language = document.getElementById("lang").value;
var curr_lang = getCookie("flip_book_lang");
document.getElementById("lang").value = curr_lang;
alert(curr_lang);
}
//Source : w3schools, 023-09-2014 http://www.w3schools.com/js/js_cookies.asp
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1){
return c.substring(name.length,c.length);
}
}
return "";
}
function removeCookie(cname){
document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
}
</script>
</head>
<body onload="loadPage()">
<select name="lang" id="lang" onchange="changeLanguage(this.value)">
<option value="english">English</option>
<option value="hindi">हिंदी</option>
</select>
</body>
</html>