通过$ .get将参数传递给javascript文件

时间:2016-03-29 21:39:28

标签: jquery

我正在尝试为我们正在使用的一组应用程序加载共享标头。目前我可以提取HTML文件甚至执行javascript。

$("#header-container")
    .load("http://component.balanceinnovations.dev/header.html header", function () {
        $.getScript("http://component.balanceinnovations.dev/js/header.js");    
});

这很好用,但我想传递header.js参数。所以我正在尝试这个

$("#header-container")
    .load("http://component.balanceinnovations.dev/header.html header", function () {
        $.get("http://component.balanceinnovations.dev/js/header.js", { cityID: '4274356' }, undefined, 'script');  
});

header.js中如何引用此参数?如果它甚至可能。

2 个答案:

答案 0 :(得分:0)

通过使用$ .get(url,success),您要求从服务器加载JavaScript文件。您无法在脚本中传递参数。

你可以这样做。

var cityID = 4274356;
$("#headercontainer").load("http://component.balanceinnovations.dev/header.html header", function () {
       $.getScript( "http://component.balanceinnovations.dev/js/header.js", function( data ) {
        //once download was performed then here you can pass your parameters into header.js.
      });    
 });


编辑:
如果使用IIFE,您可以在加载header.js之前定义一个全局变量,并在下面更改您的函数。

(function(cityID) {
  // cityID == 4274356'

})(cityID);

答案 1 :(得分:-1)

似乎有可能。根据{{​​3}},$ .getScript函数"是一个简写的Ajax函数,相当于......" (参见下面的$ .ajax代码)。您必须使用jQuery's website函数将数据传递到服务器。通过将$.ajax中的数据属性添加到Ajax page上的$ .ajax示例,它应该看起来像这样......

$.ajax({
  url: "http://component.balanceinnovations.dev/header.html",
  data: { cityID: '4274356' },
  dataType: "script",
  success: successFn
});

function successFn(data) {
    $("#header-container").html(data);
}