JS脚本在body中加载(<body onload="laode()">),脚本如下:
function load() {
var objCurrencyName = getCookie("currency");
if (objCurrencyName != null) {
//设置当前显示的币种
var objSpan = document.getElementsByTagName("span");
for (var i = 0; i < objSpan.length; i++) {
//设置下拉框默认项
var objSelect = document.getElementById("Currency");
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objCurrencyName) {
objSelect.options[i].setAttribute("selected", "selected");
}
}
if (objSpan[i].name != null) {
if (objSpan[i].name == "price_" + objCurrencyName || objSpan[i].name == "sale_" + objCurrencyName)
objSpan[i].style.display = "block";
else// if (objSpan[i].name.indexOf("price_") || objSpan[i].name.indexOf("sale_"))
objSpan[i].style.display = "none";
}
}
}
}在页面加载后,会出现:停止运行此脚本吗?此页面上的脚本造成Web浏览器运行速度减慢。如果继续运行,您的计算将可能停止响应。这是为什么呢?是JS代码有问题吗?
function load() {
var objCurrencyName = getCookie("currency");
if (objCurrencyName != null) {
//设置当前显示的币种
var objSpan = document.getElementsByTagName("span");
for (var i = 0; i < objSpan.length; i++) {
//设置下拉框默认项
var objSelect = document.getElementById("Currency");
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objCurrencyName) {
objSelect.options[i].setAttribute("selected", "selected");
}
}
if (objSpan[i].name != null) {
if (objSpan[i].name == "price_" + objCurrencyName || objSpan[i].name == "sale_" + objCurrencyName)
objSpan[i].style.display = "block";
else// if (objSpan[i].name.indexOf("price_") || objSpan[i].name.indexOf("sale_"))
objSpan[i].style.display = "none";
}
}
}
}在页面加载后,会出现:停止运行此脚本吗?此页面上的脚本造成Web浏览器运行速度减慢。如果继续运行,您的计算将可能停止响应。这是为什么呢?是JS代码有问题吗?
//**********************************
//读取Cookie
//**********************************
function getCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
if (arr != null) return unescape(arr[2]); return null;
}//**********************************
//设置Cookie
//**********************************
function SetCookie(name, value) {
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
function load() {
var objCurrencyName = getCookie("currency");
if (objCurrencyName != null) {
//设置下拉框默认项
var objSelect = document.getElementById("Currency");
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objCurrencyName) {
objSelect.options[i].setAttribute("selected", "selected");
}
} //设置当前显示的币种
var objSpan = document.getElementsByTagName("span");
for (var i = 0; i < objSpan.length; i++) {
if (objSpan[i].name != null) {
if (objSpan[i].name == "price_" + objCurrencyName || objSpan[i].name == "sale_" + objCurrencyName)
objSpan[i].style.display = "block";
else// if (objSpan[i].name.indexOf("price_") || objSpan[i].name.indexOf("sale_"))
objSpan[i].style.display = "none";
}
}
}
}这样应该就对了
首先你设置默认下拉框,放到你的SPAN循环中,本身就加重了负担,是不正确的。
其次,你的SPAN循环中,默认下拉框的循环中也使用i,导致两个i错乱,可能死循环