Mor*_*ori 4 javascript global-variables
这是一个示例表单:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample form</title>
<script type="text/javascript">
function displayResult() {
alert(document.myForm.myInput.value);
}
function getFocus() {
if (document.myForm.myInput.value == document.myForm.myInput.defaultValue) {
document.myForm.myInput.value = "";
}
}
function loseFocus() {
if (document.myForm.myInput.value == "") {
document.myForm.myInput.value = document.myForm.myInput.defaultValue;
}
}
</script>
</head>
<body>
<form name="myForm" method="get" onsubmit="return false;" action="">
<input name="myInput" value="Hello world!" onfocus="getFocus();" onblur="loseFocus();"><br>
<input type="button" onclick="displayResult();" value="Display input value">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它没有问题,但以下不是变量x似乎是正确的:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sample form</title>
<script type="text/javascript">
var x = document.myForm.myInput;
function displayResult() {
alert(x.value);
}
function getFocus() {
if (x.value == x.defaultValue) {
x.value = "";
}
}
function loseFocus() {
if (x.value == "") {
x.value = x.defaultValue;
}
}
</script>
</head>
<body>
<form name="myForm" method="get" onsubmit="return false;" action="">
<input name="myInput" value="Hello world!" onfocus="getFocus();" onblur="loseFocus();"><br>
<input type="button" onclick="displayResult();" value="Display input value">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
它有什么问题,如何定义一个全局变量供所有函数使用?
要使变量在所有范围内都可见,您应该在最全局的范围内声明它:
<script>
var variableName;
</script>
Run Code Online (Sandbox Code Playgroud)
或者你可以将它固定到全局上下文(窗口):
window['variableName'] = value;
Run Code Online (Sandbox Code Playgroud)
您的代码不起作用,因为当定义x时,表单不可用,这意味着您不为变量分配任何内容.
您应该将初始化包装在onload事件的事件处理程序中:
window.onload = function(){
window.x = document.myForm.myInput;
};
Run Code Online (Sandbox Code Playgroud)
要么
var x;
window.onload = function(){
x = document.myForm.myInput;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23588 次 |
| 最近记录: |