将javascript变量从一个文件传递到另一个文件

时间:2016-09-23 02:44:21

标签: javascript

我希望能够将这个javascript文件中的'custCenter'对象传递给另一个。我已经使它成为一个全局变量,但我不确定如何从另一个javascript文件访问它:

var map = null;
var markers = [];
var custCenter = {};

function initMap()
{
    var startingCenter = { lat: 49.22, lng: -122.66 };
    custCenter = { lat: 49.22, lng: -122.66 };

    map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: custCenter,
        mapTypeId: 'terrain'
    });

    // This event listener will call addMarker() when the map is clicked.
    map.addListener('click', function (event) {
        var myLatLng = event.latLng;

        deleteMarkers();
        addMarker(myLatLng);

        window.lat = myLatLng.lat();
        window.lng = myLatLng.lng();
        alert(window.lat + ', ' + window.lng);  
    });

    // Adds a marker at the center of the map.
    addMarker(custCenter);
}

// Adds a marker to the map and push to the array.
function addMarker(location) 
{
    var marker = new google.maps.Marker({
        position: location,
        map: map                
    });            

    markers.push(marker);
}

// Sets the map on all markers in the array.
function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(map); 
    }
}

// Deletes all markers in the array by removing references to them.
function deleteMarkers() {
    clearMarkers();
    markers = [];
}

这是我正在制作的应用程序,以帮助人们找到他们丢失的宠物。 custCenter对象是用户点击谷歌地图的lat和lng,我想传递给另一个使用谷歌地图链接到html的JS文件。如果您希望看到以下应用:http://alainwebdesign.ca/pl2/tom/getlocation.html

2 个答案:

答案 0 :(得分:0)

确保您的第二个脚本标记包含在此标记之后,以便可以访问它所依赖的custCenter变量。

答案 1 :(得分:0)

问题是您正在更改页面,该页面将清除上一页设置的所有变量(页面之间没有内存)。要将值传递到其他页面,您需要使用本地或会话存储或cookie,您在第一页上设置值

sessionStorage.setItem("custCenter", JSON.stringify(custCenter))

然后在第二页的开头加载它

custCenter = JSON.parse(sessionStorage.getItem("custCenter"))