我正在尝试添加一个脚本元素,该元素具有var myVar = "hello world"
,并且紧随其后,我想使用myVar
. 不幸的typeof myVar
是undefined
,除非我做的setTimeout
不止一个0
。 setTimeout
的0
不起作用。我复制了 Google Analytic 创建脚本元素的方法,他们似乎让它工作得很好。我错过了什么吗?
注意:由于某种原因,jsbin 的行为与将这段代码复制/粘贴到 .html 文件并在本地尝试不同。我想 jsbin 已经有一个延迟,这使得setTimeout
of0
工作。
(function () {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.defer = false;
ga.src = 'http://bakersdozen13.lfchosting.com/test.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})(); // note: the () executes it immediately (or it should!)
$("#out").append('typeof myVar is ' + typeof myVar); // "undefined" :(
setTimeout(function() {
$("#out").append('<br/>typeof myVar is ' + typeof myVar); // "undefined" :(
}, 0);
setTimeout(function() {
$("#out").append('<br/>typeof myVar is ' + typeof myVar); // "string"
}, 1000);