decode未定义

来源:6-2 实现数据层与UI渲染连调

慕虎7188715

2016-05-22

我的代码总是报这种错,哪位帮忙看看?需要引入的文件也都引入了http://szimg.mukewang.com/5741cc620001668608150080.jpg

写回答

3回答

远人

2016-05-23

<script sr c="js/jquery.base64.js"></script> 你代码这个地方 sr和c之间有个空格,这样会导致base64.js引入失败,你检查一下这里看看?

0
1
慕虎7188715
非常感谢!
2016-05-27
共1条回复

远人

2016-05-23

能不能截图看一下这个代码具体是哪个文件 哪行报错,因为chrome里的报错可能是因为你安装了一些插件导致的 而不是你写的代码的问题

0
1
慕虎7188715
我把代码贴出来了,第一行错误在zepto的第2行,第二行错误在302行,即此方法的调用处,它上一行明明还取到值了……
2016-05-23
共1条回复

慕虎7188715

提问者

2016-05-23

<script src="lib/zepto.min.js"></script>
<script>
    window.jQuery = $;
</script>
<script sr c="js/jquery.base64.js"></script>
<script src="js/jquery.jsonp.js"></script>
//上面为引入
(function(){'use strict';
    var Util=(function(){
        var prefix='ficiton_reader_';
        var StorageGetter=function(key){
            return localStorage.getItem(prefix+key);
        }
        var StorageSetter=function(key,val){
            return localStorage.setItem(prefix+key,val);
        }
        //解密获得的JSOP数据,base64插件需要跨域
        var getJSONP=function(url,callback){
            return $.jsonp({
                url:url,
                cache:true,
                callback:'duokan_fiction_chapter',
                success:function(result){
                    debugger
                    var data= $.base64.decode(result);//解码后为JSON数据
                    var json=decodeURIComponent(escape(data));//解码
                    callback(json);
                }
            });
        }
        return {
            getJSONP:getJSONP,
            StorageGetter:StorageGetter,
            StorageSetter:StorageSetter
        }
    })();
    var Dom={
        top_nav:$('#top_nav'),
        bottom_nav:$('.bottom_nav'),
        font_container:$('.font-container'),
        nav_pannel_bk:$('.nav-pannel-bk'),
        font_button:$('#font_button'),
    }
    var Win=$(window);
    var Doc=$(document);
    var RootContainer=$('#fiction_container');
    //获取本地已存储的字体大小
    var inintFontSize=Util.StorageGetter('font_size');
    inintFontSize=parseInt(inintFontSize);
    if(!inintFontSize){
        inintFontSize=14;
    }
    RootContainer.css('font-size',inintFontSize);
    //入口
    function main(){
        var readerModel=ReaderModel();
        var readerUI=ReaderBaseFrame(RootContainer);
        readerModel.init(function(data){
            readerUI(data);
        });
        EventHanlder();
    };
    //实现和阅读器相关的数据交互的方法
    function ReaderModel(){
        var Chapter_id;
        //初始化界面
        var init=function(){
            //获得章节
            getFictionInfo(function(){
                //获得章节下的内容
                getCurChapterContent(Chapter_id,function(data){
                    //
                    //UIcallback && UIcallback(data);
                });
            });
        }
        var getFictionInfo=function(callback){
            $.get('data/chapter.json',function(data){
                //获得章节信息之后的回调
                Chapter_id=data.chapters[1].chapter_id;
                callback && callback();
            },'json');
        };
        //获得当前章节内容
        var getCurChapterContent=function(chapter_id,callback){
            $.get('data/data'+chapter_id+'.json',function(data){
                if(data.result==0){//result为0时请求成功,这是根据后台及公司规定的
                    var url=data.jsonp;//获得真实数据的地址data3.json中的jsonp
                    Util.getJSONP(url,function(data){//获得解码后的数据
                        callback && callback(data);
                    });
                }
            },'json');
        }
        //暴露
        return{
            init:init
        }
    };
    //渲染基本的UI结构
    function ReaderBaseFrame(container){
        /*function parseChapterData(jsonData){
            var jsonObj=JSON.parse(jsonData);
            var html='<h4>'+jsonObj.t+'</h4>';
            for(var i=0;i<jsonObj.p.length;i++){
                html+='<p>'+jsonObj.p[i]+'</p>';
            }
            return html;
        }
        return function(data){
            container.html(parseChapterData(data));
        }*/
    };
    //字体变大
    $('#large-font').click(function(){
        if(inintFontSize>20){
            return;
        }
        inintFontSize+=1;
        RootContainer.css('font-size',inintFontSize);
        //本地存储字体大小
        Util.StorageSetter('font_size',inintFontSize);
    });
    //字体变小
    $('#small-font').click(function(){
        if(inintFontSize<12){
            return;
        }
        inintFontSize -=1;
        RootContainer.css('font-size',inintFontSize);
        Util.StorageSetter('font_size',inintFontSize);
    });
    //背景色变化
    $('.bk-container-current').click(function(){
        RootContainer.css('background-color',$(this).css('background-color'));
        $(this).parent().css('border','1px #ff7800 solid').siblings().css('border','none');
    });
    //交互的事件绑定
    function EventHanlder(){
        /*头问,底部导航栏出现与隐藏*/
        $('#action_mid').click(function(){
            if(Dom.top_nav.css('display')=='none'){
                Dom.bottom_nav.show();
                Dom.top_nav.show();
            }else{
                Dom.bottom_nav.hide();
                Dom.top_nav.hide();
                Dom.nav_pannel_bk.hide();
                $('.nav-pannel ').hide();
            }
        });
        Win.scroll(function(){
            Dom.bottom_nav.hide();
            Dom.top_nav.hide();
            Dom.font_container.hide();
            Dom.font_button.removeClass('current');
            Dom.nav_pannel_bk.hide();
        });
        /*字体切换*/
        Dom.font_button.click(function(){
            if(Dom.font_container.css('display')=='none'){
                Dom.font_container.show();
                Dom.font_button.addClass('current');
                Dom.nav_pannel_bk.show();
            }else{
                Dom.font_container.hide();
                Dom.font_button.removeClass('current');
                Dom.nav_pannel_bk.hide();
            }
        });
        /*白夜切换*/
        $('#day-night').trigger(function(){
            //todo
        });
    };
    main();
})();
0
0

HTML5独立开发书城Web App

最前沿前端技术精讲, HTML5 、Vue.js 、Koa 、zepto 综合运用

3387 学习 · 685 问题

查看课程