文件之间的Javascript var
Posted
技术标签:
【中文标题】文件之间的Javascript var【英文标题】:Javascript var between files 【发布时间】:2016-04-07 11:32:52 【问题描述】:我在将变量导入到从回调运行的 js 函数中时遇到问题:
<script type="text/javascript" src="/javascripts/maps.js"> </script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=<%= mapkey%>
&libraries=visualization&callback=initMap">
</script>
问题是我不能在 initMap 中使用全局变量或外部函数。我正在使用 nodejs。
function initMap()
var map = new google.maps.Map(document.getElementById('map'),
zoom: 8,
center: lat: -34.397, lng: 150.644
);
var geocoder = new google.maps.Geocoder();
document.getElementById('submit').addEventListener('click', function()
geocodeAddress(geocoder, map);
);
function geocodeAddress(geocoder, resultsMap)
var address = document.getElementById('address').value;
geocoder.geocode('address': address, function(results, status)
if (status === google.maps.GeocoderStatus.OK)
resultsMap.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker(
map: resultsMap,
position: results[0].geometry.location
);
else
alert('Geocode was not successful for the following reason: ' + status);
);
由于地址取自html表单或可以显式定义:
var address = document.getElementById('address').value; or
var address = ["place", "place"]
但是我需要能够使用全局变量或导出函数:
var address = global_locations (defined elsewhere as a global.gobal_locations = ["place", "place"] and works in other files) or
var address = loc.getAddresses();
我对异步的理解不足以做到这一点
【问题讨论】:
您是否尝试从locations.js 中读取值?也许你应该对文件做一个 ajax 请求? 您可以尝试将数组存储在 localstorage 中,然后在您的其他文件中再次读取它 【参考方案1】:您可以使用 window 并为要全局访问的变量创建命名空间。
请在Storing a variable in the JavaScript 'window' object is a proper way to use that object? 中查看来自 Blazemonger 的答案。
我想这会帮助你去你想去的地方。
您可以添加动态脚本加载功能,如下所示:
function loadjs(filename)
var jsfile=document.createElement('script')
ref.setAttribute("type","text/javascript")
ref.setAttribute("src", filename)
loadjs("myscript.js")
【讨论】:
以上是关于文件之间的Javascript var的主要内容,如果未能解决你的问题,请参考以下文章
javascript 文件大小函数故障,字节在 1000 到 1024 之间
Knockout js - 如何在两个 javascript 文件之间传递值
jQuery的文件引入入口函数以及js对象和jquery对象之间的互相转换