我的JS文件无法加载到我的Chrome网络应用程序中 [英] My JS file won't load on my Chrome web application

查看:145
本文介绍了我的JS文件无法加载到我的Chrome网络应用程序中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在写一个Chrome网络应用程序,并尝试在其上加载时钟,但这不工作。 HTML& CSS文件显示,但不是JS,意味着应用程序看起来像一个空框。



我非常感谢您的帮助 - 非常感谢! p>

这是我的popup.html文件:

 <!DOCTYPEhtml& 
< link rel =stylesheettype =text / csshref =popup.css>
< title>您的个人主页< / title>
< script src =popup.js>< / script>
< script src =clock.js>< / script>
< / head>
< body>
< div id =clockclass =light>
< div class =display>
< div class =weekdays>< / div>
< div class =ampm>< / div>
< div class =alarm>< / div>
< div class =digits>< / div>
< / div>
< / div>
<! - JavaScript包含 - >
< script src =http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js>< / script>
< script src =http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js>< / script>
< / body>
< / html>

这里是我的clock.js文件:

  $(function(){

//缓存一些选择器

var clock = $('#clock'
alarm = clock.find('。alarm'),
ampm = clock.find('。ampm');

//将数字映射到其名称是一个数组)
var digit_to_name ='zero one two three four four five six seven八nine'.split('');

//此对象将持有数字元素
var digits = {};

//小时,分钟和秒的位置
var positions = [
'h1','h2',':' 'm1','m2',':','s1','s2'
];

//生成需要标记的数字,
//添加他们到时钟

var digit_holder = clock.find('。digits');

$ .each(positions,function(){

if(this ==':'){
digit_holder.append('< div class =dots>');
}
else {

var pos = $('< div>');

for(var i = 1; i <8; i ++){
pos.append('< span class =d'+ i +'>');
}

//将数字设置为key:数字对象中的值对
digits [this] = pos;

//将数字元素添加到页面
digit_holder.append(pos);
}

});

//添加工作日名称

var weekday_names ='MON TUE WED THU FRI SAT SUN'.split(''),
weekday_holder = clock.find ('.weekdays');

$ .each(weekday_names,function(){
weekday_holder.append('< span>'+ this +'< / span>');
} ;

var weekdays = clock.find('。weekdays span');

//每秒运行一个计时器并更新时钟

(function update_time(){

//使用moment.js输出当前时间为字符串
// hh用于12小时格式的小时,
// mm - 分钟,ss-秒(所有带前导零),
// d一个星期,A是AM / PM

var now = moment()。format(hhmmssdA);

digits.h1.attr ,digit_to_name [now [0]]);
digits.h2.attr('class',digit_to_name [now [1]]);
digits.m1.attr('class',digit_to_name [now [2]]);
digits.m2.attr('class',digit_to_name [now [3]]);
digits.s1.attr('class',digit_to_name [now [4] );
digits.s2.attr('class',digit_to_name [now [5]]);

//库返回星期日作为一周的第一天
// Stupid,我知道,让所有的一天下来一个位置,
//和周日最后

var dow = now [6];
dow - ;

// Sunday!
if(dow< 0){
//让它最后
dow = 6;
}

//标记活动的星期几
weekdays.removeClass('active')。eq(dow).addClass('active')

//设置am / pm文本:
ampm.text(now [7] + now [8]);

//将此函数调度为在1秒内再次运行
setTimeout(update_time,1000);

})();

有没有办法让这个出现?



谢谢!

解决方案

您的clock.js使用jQuery,但在加载jQuery之前加载。在jQuery之后包含它。


I'm writing a Chrome web application and am trying to load a clock onto it, but this is not working. The HTML & CSS files are showing up but not the JS, meaning that the application just looks like an empty box.

I would really appreciate your help - thank you very much!

Here is my popup.html file:

<!DOCTYPEhtml>
    <link rel="stylesheet" type="text/css" href="popup.css">
        <title>Your Personal Homepage</title>
        <script src="popup.js"></script>
        <script src="clock.js"></script>
      </head>
       <body>
    <div id="clock" class="light">
                <div class="display">
                    <div class="weekdays"></div>
                    <div class="ampm"></div>
                    <div class="alarm"></div>
                    <div class="digits"></div>
                </div>
            </div>
    <!-- JavaScript Includes -->
            <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
            <script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.0.0/moment.min.js"></script>
            </body> 
</html>

And here is my clock.js file:

$(function(){

// Cache some selectors

var clock = $('#clock'),
    alarm = clock.find('.alarm'),
    ampm = clock.find('.ampm');

// Map digits to their names (this will be an array)
var digit_to_name = 'zero one two three four five six seven eight nine'.split(' ');

// This object will hold the digit elements
var digits = {};

// Positions for the hours, minutes, and seconds
var positions = [
    'h1', 'h2', ':', 'm1', 'm2', ':', 's1', 's2'
];

// Generate the digits with the needed markup,
// and add them to the clock

var digit_holder = clock.find('.digits');

$.each(positions, function(){

    if(this == ':'){
        digit_holder.append('<div class="dots">');
    }
    else{

        var pos = $('<div>');

        for(var i=1; i<8; i++){
            pos.append('<span class="d' + i + '">');
        }

        // Set the digits as key:value pairs in the digits object
        digits[this] = pos;

        // Add the digit elements to the page
        digit_holder.append(pos);
    }

});

// Add the weekday names

var weekday_names = 'MON TUE WED THU FRI SAT SUN'.split(' '),
    weekday_holder = clock.find('.weekdays');

$.each(weekday_names, function(){
    weekday_holder.append('<span>' + this + '</span>');
});

var weekdays = clock.find('.weekdays span');

// Run a timer every second and update the clock

(function update_time(){

    // Use moment.js to output the current time as a string
    // hh is for the hours in 12-hour format,
    // mm - minutes, ss-seconds (all with leading zeroes),
    // d is for day of week and A is for AM/PM

    var now = moment().format("hhmmssdA");

    digits.h1.attr('class', digit_to_name[now[0]]);
    digits.h2.attr('class', digit_to_name[now[1]]);
    digits.m1.attr('class', digit_to_name[now[2]]);
    digits.m2.attr('class', digit_to_name[now[3]]);
    digits.s1.attr('class', digit_to_name[now[4]]);
    digits.s2.attr('class', digit_to_name[now[5]]);

    // The library returns Sunday as the first day of the week.
    // Stupid, I know. Lets shift all the days one position down, 
    // and make Sunday last

    var dow = now[6];
    dow--;

    // Sunday!
    if(dow < 0){
        // Make it last
        dow = 6;
    }

    // Mark the active day of the week
    weekdays.removeClass('active').eq(dow).addClass('active');

    // Set the am/pm text:
    ampm.text(now[7]+now[8]);

    // Schedule this function to be run again in 1 sec
    setTimeout(update_time, 1000);

})();

Is there any way to make this show up?

Thank you!

解决方案

Your clock.js uses jQuery but is loaded before jQuery is loaded. Include it after jQuery instead.

这篇关于我的JS文件无法加载到我的Chrome网络应用程序中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆