在一个页面上,我有2个javascripts。第一个脚本(A.js)将脚本附加到父页面的头部以传递JSONP。然后,第一个脚本获取JSONP数组数据并将其放入数组中以供第二个脚本使用。当我转到硬URL时,一切正常。如果我F5它不起作用。如果我在JSONP完成后立即向第一个脚本添加警报,那么一切正常。
所以,我猜测在刷新时,由于某些原因,一切都发生得更快,因此脚本的附加没有机会发生,数组永远不会接收数据。
我该如何解决这个问题?
主页:
<script src="A.js"></script>
<script type="text/javascript">
ArrayValueOnMainPage = ArrayValue.FirstValue
</script>
A.js:
//Fail safe default
ArrayValue = {"FirstValue":["NULL"]};
function initiate(data){
ArrayValue = data;
}
function loadJSONP(url){
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);
}
loadJSONP('/test.json');
test.json:
initiate({"FirstValue":["Hello"]});
在硬浏览到URL时,FirstValue作为Hello传递。
在F5刷新时,FirstValue作为NULL传递。