使用在不同页面中创建的变量

时间:2013-07-15 10:16:46

标签: javascript jquery html5

我的index.html页面中有两个JavaScript变量。我想在control.js中使用这两个变量。

index.html有一些jQuery脚本,如下所示

<script>
$(document).ready(function() {
// load select code from country.html
$('#selectCourse_country').load('country.html select', function() {
    // when country is selected
    $('#selectCourse_country select').change(function() {
        // get id
        var countryId = $(this).children('option:selected').val();
        // load select code from state.html by id
        $('#selectCourse_state').load('state.html #'+countryId,function(){
            $('#selectCourse_state select').change(function(){
                var stateId = $(this).children('option:selected').val();
               //alert(stateId);                    
            });
        });
    });
  });
});
</script> 

我想在countryId中使用变量值stateIdcontrol.js。如何将它们从index.html传递到control.js

4 个答案:

答案 0 :(得分:2)

  

在项目中创建一个可以包含任何对象的全局容器。这些对象可以在应用程序的任何js页面中全局访问。

window.global ={country_ID : countryId , state_ID : stateId};
  

然后在control.js中使用它们,如:

var contId =window.global.country_ID;
var statId =window.global.state_ID;

答案 1 :(得分:0)

使用jQuery.cookie(https://github.com/carhartl/jquery-cookie),以下内容应符合您的需求。

写饼干......

$.cookie("countryId", countryId);
$.cookie("stateId", stateId);

然后在control.js中你可以得到像这样的值......

var countryId = $.cookie("countryId");
var stateId = $.cookie("stateId");

答案 2 :(得分:0)

jQuery解决方案很好。这是一个 使用cookies。

为简洁起见我只编写了stateID

//Store cookie.
 var stateId = $(this).children('option:selected').val();
 document.cookie = "stateid="+ stateId;

//Get user cookie and match stateID
var cookies = document.cookie.split(';')
for (var i = 0 ; i< cookies.length;i++){
 if(cookies[i].match(/stateid/)){
 //Do stuff
 }
}

答案 3 :(得分:0)

这可能对您有所帮助。

使用modernizer将数据从html传递到另一个js文件。

//Load JS through Modernizer
Modernizr.load([
  // Functional polyfills
  {
    // This just has to be truthy
    test : Modernizr.websockets && window.JSON,
    // socket-io.js and json2.js

    // Arrays of resources to load.
    both : [ '/js/jquery.min.js', '/js/jquery-ui-min.js'],
    complete : function () {
        // Run this after everything in this group has downloaded
        // and executed, as well everything in all previous groups
        $('#selectCourse_country').load('country.html select', function() {
        // when country is selected
        $('#selectCourse_country select').change(function() {
        // get id
        var countryId = $(this).children('option:selected').val();
        // load select code from state.html by id
        $('#selectCourse_state').load('state.html #'+countryId,function(){
            $('#selectCourse_state select').change(function(){
            var stateId = $(this).children('option:selected').val();
               //alert(stateId);                    
            });
        });
        });
      });
    }
  },
  // Run your code afte you've already kicked off all the rest
  // of your app.
  // Pass variables to this js file
  '/js/control.js'
]);