我有以下代码:
<script type="text/javascript">
var ops = {
slideshow: {
slices: 20,
boxCols: 11,
boxRows: 6,
animSpeed: 750,
pauseTime: 6000
},
tweets: {
username: 'stigmahost',
count: 6,
refresh_interval: 120,
auto_join_text_default: 'I said,',
auto_join_text_ed: "I",
auto_join_text_ing: "I am",
auto_join_text_reply: "I replied to",
auto_join_text_url: "I was looking at",
just_now: 'Now',
X_seconds_ago: '{x} seconds ago',
about_a_minute_ago: 'About a minute ago',
about_X_minutes_ago: 'About {x} minutes ago',
about_an_hour_ago: 'About an hour ago',
about_X_hours_ago: 'About {x} hours ago',
about_a_day_ago: 'About a day ago',
about_X_days_ago: 'About {x} ημέρες ago'
},
map:
{
latitude: 37.966667,
longitude: 23.716667,
zoom: 8
}
}
</script>
在该代码之后和立即我有该代码:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=MyKey&sensor=true"> </script>
<script type="text/javascript" src="js/js.js"></script>
<script type="text/javascript" src="js/jquery.tweet.js"></script>
然后在 js.js 文件中,我尝试使用 ops 变量,但没有任何运气。您是否知道为什么我不能将变量 ops 用于 js.js 。
进入js文件我使用该代码来确定ops变量的类型:
console.dir(ops);
在我的控制台中,我得到了未定义的结果。
我做错了吗?
我做了一些进步。 js.js文件是这样的:
jQuery(document).ready(
function()
{
console.dir(typeof ops);
...
File code here
...
}
);
上面的代码在我的控制台中返回“undefined”
现在我试试了:
console.dir(typeof ops);
jQuery(document).ready(
function()
{
console.dir(typeof ops);
...
File code here
...
}
);
并在我的控制台中返回,第一次尝试返回“Object”,第二次尝试返回“undefined”。
有帮助吗?
答案 0 :(得分:2)
$.getScript("js.js", function() {
//declare ops-variable in here and use it
});
没有jquery:
var Loader = function () {
}
Loader.prototype = {
require: function (scripts, callback) {
this.loadCount = 0;
this.totalRequired = scripts.length;
this.callback = callback;
for (var i = 0; i < scripts.length; i++) {
this.writeScript(scripts[i]);
}
},
loaded: function (evt) {
this.loadCount++;
if (this.loadCount == this.totalRequired && typeof this.callback == 'function') this.callback.call();
},
writeScript: function (src) {
var self = this;
var s = document.createElement('script');
s.type = "text/javascript";
s.async = true;
s.src = src;
s.addEventListener('load', function (e) { self.loaded(e); }, false);
var head = document.getElementsByTagName('head')[0];
head.appendChild(s);
}
}
var l = new Loader();
l.require([
"js.js"
function() {
// do same stuff in this callback
});