0

私は次のコードを持っています:

<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変数を使用しようとしましたが、うまくいきませんでした。js.jsで変数opsを使用できない理由を知っていますか。

jsファイルにops変数のタイプを決定するためにそのコードを使用しました:

console.dir(ops);

そして私のコンソールでは、未定義の結果が得られます。

私は何か間違ったことをしましたか?


私はいくつかの進歩を遂げました。js.jsファイルは次のようなものです。

jQuery(document).ready(
    function()
    {
        console.dir(typeof ops);
        ...
        File code here
        ...
    }
);

上記のコードは私のコンソールに「未定義」で返されます

今私はそれを試してみました:

console.dir(typeof ops);

jQuery(document).ready(
    function()
    {
        console.dir(typeof ops);
        ...
        File code here
        ...
    }
);

そして、コンソールに戻ります。最初の試行では「Object」、2番目のtypeofでは「undefined」です。

それは助けになりますか?

4

1 に答える 1

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
});
于 2012-05-22T11:13:35.970 に答える