Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
    • 指導教授
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 管理學院
  3. 資訊管理學系
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/60136
完整後設資料紀錄
DC 欄位值語言
dc.contributor.advisor莊裕澤
dc.contributor.authorChun-Yan Hoen
dc.contributor.author何均晏zh_TW
dc.date.accessioned2021-06-16T09:58:28Z-
dc.date.available2017-02-08
dc.date.copyright2017-02-08
dc.date.issued2016
dc.date.submitted2016-12-09
dc.identifier.citationAriya, H. (2012). Esprima. Retrieved from Esprima: http://esprima.org
Chai.js Assertion Library. (2016). Chai Assertion Library. Retrieved from Chai Assertion Library: http://chaijs.com
Dave, H., Ingvar, S., Mike, S., Michael, F., Sebastian, M., & Kyle, S. (2015). The ESTree Spec. Retrieved from The ESTree Spec: https://github.com/estree/estree
Douglas, C. (2008). Appendix A: Awful Parts. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc.
Douglas, C. (2008). Functions. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc.
Douglas, C. (2008). Inheritance. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc.
Douglas, C. (2008). Objects. In C. Douglas, JavaScript: The Good Parts. O’Reilly Media, Inc.
Ecma International. (2011). Standard ECMA-262 5.1 Edition / June 2011. Retrieved from Ecma International: http://www.ecma-international.org/ecma-262/5.1/
Google. (n.d.). chrome.devtools.inspectedWindow. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools_inspectedWindow
Google. (n.d.). chrome.devtools.panels. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools_panels
Google. (n.d.). chrome.runtime. Retrieved from Google Chrome: https://developer.chrome.com/extensions/runtime
Google. (n.d.). chrome.tabs. Retrieved from Google Chrome: https://developer.chrome.com/extensions/tabs
Google. (n.d.). Extending DevTools. Retrieved from Google Chrome: https://developer.chrome.com/extensions/devtools
Google. (n.d.). Overview. Retrieved from Google Chrome: https://developer.chrome.com/extensions/overview
Jardine, A. (2011). Visual Event - visually inspect Javascript events. Retrieved from Visual Event: https://github.com/DataTables/VisualEvent
jQuery Foundation. (2014). jQuery API. Retrieved from jQuery: http://api.jquery.com
Karma. (2016). Karma. Retrieved from Karma: http://karma-runner.github.io/1.0/index.html
Mocha.js. (2016). Mocha. Retrieved from Mocha: https://mochajs.org
Mozilla Foundation. (2016, October 6). Attr. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Attr
Mozilla Foundation. (2015, February 20). CSSStyleDeclaration. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration
Mozilla Foundation. (2016, June 17). DOMParser. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/DOMParser
Mozilla Foundation. (2016, October 5). DOMTokenList. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/DOMTokenList
Mozilla Foundation. (2016, September 13). Element. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Element
Mozilla Foundation. (2016, August 23). EventTarget. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget
Mozilla Foundation. (2016, September 4). HTMLElement. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement
Mozilla Foundation. (2016, September 4). Node. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Node
Mozilla Foundation. (2016, August 29). Window. Retrieved from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window
sinonjs. (2016). Sinon.JS. Retrieved from Sinon.JS: http://sinonjs.org
Yusuke, S. (2012). Escodegen. Retrieved from Escodegen: https://github.com/estools/escodegen
林信良. (n.d.). 在 Scope chain 查找變數. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/ScopeChain.html
林信良. (n.d.). 函式 prototype 特性. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Prototype.html
林信良. (n.d.). 初探一級函式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/FirstClassFunction.html
林信良. (n.d.). 隱藏諸多細節的建構式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Constructor.html
林信良. (n.d.). Closure 與一級函式. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/Closure.html
林信良. (n.d.). this 是什麼?. Retrieved 2016, from JavaScript 語言核心: http://openhome.cc/Gossip/CodeData/EssentialJavaScript/This.html
dc.identifier.urihttp://tdr.lib.ntu.edu.tw/jspui/handle/123456789/60136-
dc.description.abstract隨著網路技術之發展、網頁與使用者互動的需求日增,網頁前端開發越來越複雜,動輒包含數千甚至數萬行的JavaScript程式碼。對於網頁開發者而言,當頁面中的HTML元素,因為JavaScript的操作而產生非預期的反饋行為時,開發者往往很難從數千數萬行的JavaScript程式碼中,找出實際造成錯誤的程式碼。
本篇論文將以現有的JavaScript程式碼解析技術,透過實作一Chrome擴充功能,將網頁中的JavaScript程式碼轉換為Abstract Syntax Tree(AST),以AST的角度來模擬原本程式碼的行為,並在模擬解析AST的過程中,在適當的時機加入記錄程式碼資訊的邏輯判斷,任何使用DOM或jQuery API的JavaScript程式碼資訊(包括位於哪個檔案、原始碼行與列的範圍、以及原始程式碼字串),都會以頁面中的HTML元素為分類,動態地記錄下來。
藉由安裝並使用本研究所開發的Chrome擴充功能,網頁開發者追蹤頁面中的JavaScript程式碼將變得更有效率,以往必須尋遍所有程式碼的除錯過程,現在只需要在產生錯誤反饋行為的HTML元素上,過濾出真正造成錯誤的JavaScript程式碼即可。
zh_TW
dc.description.abstractIn recent years, the technologies of web development evolve dramatically. Interaction with users is now an essential feature on every web page. Due to this circumstance, development of a web page is getting more and more complicated, usually involving thousands or even tens of thousands JavaScript code. It is hard for web front-end developers to find out possible errors from thousands of code, once there are some unexpected behaviors of HTML elements triggered by JavaScript on web page.
In this thesis, we develop a Chrome Extension. We use this extension to parse all JavaScript code on web page into an Abstract Syntax Tree (AST). With the AST, we use our own parsers to parse the AST to simulate the behaviors of original web page, and we record information of JavaScript code (including file the code located in, location of the code in file, and the code text), which using DOM or jQuery API, grouped by HTML elements on web page while simulating.
With the Chrome Extension this thesis developed, it becomes more efficient for web front-end developer to track the JavaScript code on web page. Web front-end developers is needless to search all JavaScript code on web page anymore. Instead, they can select specific HTML elements on page to get information of JavaScript code only related to the unexpected behaviors of web page.
en
dc.description.provenanceMade available in DSpace on 2021-06-16T09:58:28Z (GMT). No. of bitstreams: 1
ntu-105-R03725029-1.pdf: 17469802 bytes, checksum: 4b408a4000f3365502c4f49e23ae99c3 (MD5)
Previous issue date: 2016
en
dc.description.tableofcontents論文口試委員審定書 i
致謝 ii
論文摘要 iii
THESIS ABSTRACT iv
目錄 v
圖目錄 vi
第一章 - 緒論 1
1.1研究背景與動機 1
1.2 研究目的 4
1.3 研究架構 5
第二章 - 文獻探討 6
2.1 現有工具探討 6
2.2 JavaScript語言特性 13
2.3 JavaScript與HTML元素 23
2.4 Chrome Extension 29
2.5 Esprima 31
第三章 - 研究設計 34
3.1 Chrome Extension架構設計實作 34
3.2 從AST模擬JavaScript原始碼行為 38
3.3 判斷並紀錄DOM API與jQuery API的使用 51
3.4 小結 55
第四章 - 研究成果 56
4.1 相關連結與資訊 56
4.2 如何安裝 56
4.3 使用流程與展示 57
4.4 系統效益與評估 65
第五章 - 結論 67
5.1 結論 67
5.2 未來展望 67
參考文獻 69
dc.language.isozh-TW
dc.subjectHTMLzh_TW
dc.subjectJavaScriptzh_TW
dc.subjectDOM APIzh_TW
dc.subjectjQuery APIzh_TW
dc.subject網頁開發zh_TW
dc.subject網頁除錯zh_TW
dc.subjectChrome擴充功能zh_TW
dc.subjectChrome Extensionen
dc.subjectHTMLen
dc.subjectJavaScripten
dc.subjectDOM APIen
dc.subjectjQuery APIen
dc.subjectWeb Developmenten
dc.subjectWeb Debugen
dc.titleJavaScript使用DOM或jQuery API操作網頁中HTML元素之行為追蹤工具開發zh_TW
dc.titleOn the Tool Development for Tracking the Behavior of JavaScript that Uses DOM or jQuery API to manipulate HTML Elements on Web Pagesen
dc.typeThesis
dc.date.schoolyear105-1
dc.description.degree碩士
dc.contributor.oralexamcommittee蔡益坤,孔令傑,曹承礎
dc.subject.keywordHTML,JavaScript,DOM API,jQuery API,網頁開發,網頁除錯,Chrome擴充功能,zh_TW
dc.subject.keywordHTML,JavaScript,DOM API,jQuery API,Web Development,Web Debug,Chrome Extension,en
dc.relation.page70
dc.identifier.doi10.6342/NTU201603800
dc.rights.note有償授權
dc.date.accepted2016-12-13
dc.contributor.author-college管理學院zh_TW
dc.contributor.author-dept資訊管理學研究所zh_TW
顯示於系所單位:資訊管理學系

文件中的檔案:
檔案 大小格式 
ntu-105-1.pdf
  未授權公開取用
17.06 MBAdobe PDF
顯示文件簡單紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved