javascript中的全局对象

时间:2013-02-15 04:15:55

标签: javascript

我有2个文件。 1个html和一个js。 html文件有复选框。当我选中一个复选框时,我正在设置一个标志。这个标志必须放在.js文件中。根据是否设置了标志,我将在js文件中执行一些操作。基本上,我该怎么做才能在javascript文件中提供html文件中设置的标志?

谢谢。

Html文件

function checkWIFI(){

if(document.getElementById('wifi').checked == true) 

wifiFlag.changeFlag(true);

else 

wifiFlag.changeFlag(false); 

}

javscript文件

wifiFlag = new testFlag(); 

function testFlag()

{

this.flag = false;

} 

testFlag.prototype.changeFlag = function(newFlag)

{

 this.flag = newFlag; 

} 

4 个答案:

答案 0 :(得分:2)

您可以使用全局变量,并将它们声明在JS文件的顶部。无论你在window下申报什么,都会变成一个全局变量。在JS文件中,在顶部添加以下行。

window.flag = 0;

在复选框中,当您更改时,设置标记。

<input type="checkbox" name="flag"
       onclick="if (this.checked) window.flag = 1; else window.flag = 0;" />

现在,您可以使用window.flag访问该标记。

if (window.flag == 1)
    // Do something
else
    // Do something

答案 1 :(得分:0)

在html中,您声明了一个隐藏变量

<input type="hidden" id="hidden1" >

并设置它的值

document.getElementById('hidden1').value = '//your returned value';

访问脚本中的隐藏值

var x=document.getElementById("hidden1").value;
alert(x);

希望这对你有用..

答案 2 :(得分:0)

我建议您在.js文件中编写javascript,以便为其提供必要的上下文信息。因此,编写函数或可以在复选框值中传递的内容。这将有助于保持代码更可重用,并且不会绑定到全局窗口。只要复选框值发生更改,您就可以启动此代码,枚举复选框值并将其传递给您的代码。我建议不要使用全局变量。如果你绝对必须,那么命名它们。

答案 3 :(得分:0)

我建议最安全的方法是使用可用的数据属性。例如,

<input type="checkbox" name="firstCheckbox" data-flag="old">

这种方法可以让您慷慨地退回,因为旧的浏览器不会抱怨。如果您有多个复选框,则不需要为每个复选框添加额外标记。使用全局变量可能导致问题和名称空间问题。隐藏的值也是一个很好的方法:)

您可以使用以下两种方法之一获取数据属性的值。 1)getAttribute,旧的JavaScript方法,你想要抓取data-flag。在jQuery中,使用attr(),2)HTML5方式,它存储在.dataset数组属性中,所以.dataset ['flag']和jQuery中的等价方式是.data('flag')

安吉拉