上一篇文章讲解了PDF.js中展现的页面viewer.html的各个构成部分,这一篇文章主要讲解一下UI层的核心:viewer.js。
刚一打开viewer.js,我瞬间懵了,作为一个前端入门人员(前些年一直做C/C++这块),没有学过webpack的相关知识,不知从何入手。先看看对应的代码截图:
viewer.js代码有16103行,有48个web pack对象,外加一些viewer.html页面初始化时的执行代码。这下就从页面初始化时的执行代码开始讲起(有点迷糊:不知道从何开始写,慢慢写吧)。
js初始化
当viewer.html页面加载viewer.js时,会去初始化一些全局变量,大体执行的代码如下图所示:
这里不一一的详解对应的代码,只是说一下大体思路:
1、当viewer.js被加载时,定义了两个全局变量:_app_options、_app。
2、当viewer.html页面渲染的状态为interactive或者complete时,就去调用webViewerLoad方法来加载整个PDFViewer页面并根据参数来打开要发开的文档。如果viewer.html页面的状态为loading时,就调用 document.addEventListener("DOMContentLoaded", webViewerLoad, true);
来注册了一个事件,当viewer.html的DOMContentLoaded 事件被触发时,就去调用webViewerLoad方法。
_app_options
该全局变量的执行代码如下:var_app_options = __webpack_require__(1);
即加载webpack(1)所定义的对象值,执行代码如下: