在下面的代码中,我无法从函数中访问“颜色”,但可以访问“numColors”。getColors() 函数似乎正确设置了数组,但 init() 函数无法访问它,如警报语句结果所示。
可以使用参数字符串调用该页面,例如“?colors=0000FF|FF0000”。
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<script>
( function () {
var colors = [];
var numColors;
document.addEventListener("DOMContentLoaded", init, false );
function init() {
colors = getColors()
alert(numColors);
alert(colors);
}
function getColors() {
var data = getURLParameter('colors');
var list = data.split('|');
for (i = 0; i < list.length; i++) {
colors.push(list[i]);
}
numColors = colors.length;
alert(numColors);
alert(colors);
}
// from http://www.netlobo.com/url_query_string_javascript.html
function getURLParameter(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\?&]" + name + "=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if (results == null) {
return "";
} else {
return results[1];
}
}
} ) ();
</script>
</body>
</html>