如何通过网页获取该网站的js框架
昨天正在吃雞ing,3殺就快決賽圈了,突然老師丟給三個(gè)網(wǎng)站鏈接,讓我去查查他們用的什么js框架。。。
講道理,剛看到這個(gè)問題的時(shí)候我也是頭皮一麻
怎么可能通過網(wǎng)頁(yè)就能看到人家是啥框架?人家不都封裝過了嗎?
那些寫這個(gè)網(wǎng)站的都是傻×嗎?隨便就讓你看核心js框架啊?
經(jīng)過兩天的實(shí)驗(yàn)和查資料,貌似也是可以看查到的,畢竟人無完人,總有百密一疏的時(shí)候。
當(dāng)然這只是我嘗試過的一些方法,我的問題解決了,但并不能保證一定可以解決所有的問題,如果遇到封裝很好的網(wǎng)站,那就認(rèn)命吧。。
剛開始去搜索的時(shí)候,別人的博客,或者論壇會(huì)給你很多的網(wǎng)站,讓你去把你的網(wǎng)站輸入進(jìn)去,就可以看到網(wǎng)站的核心技術(shù),講道理真的沒有什么卵用。
比如我嘗試的一個(gè):https://builtwith.com/
?操作很簡(jiǎn)單,你只需要將網(wǎng)址輸入進(jìn)去就可以,然后看看返回了什么
?這就是它返回給我的這個(gè)網(wǎng)站所使用的所有的技術(shù),但這并不是我想要的啊o((>ω< ))o
而且還有個(gè)問題就是,如果框架是ASP.NET的那么網(wǎng)頁(yè)的訪問因該有相對(duì)應(yīng)得后綴命如:.aspx? ?.ashx等等
所有我認(rèn)定這玩意在坑我.........
后來我嘗試用英文得方式在google上搜這類問題,一個(gè)告訴我要靠經(jīng)驗(yàn)去獲取,就是你得多學(xué)框架,知道每個(gè)框架得特點(diǎn),關(guān)鍵字,那么一眼就可以知道這個(gè)是那個(gè)框架寫的了。。。說去框架,可以看看我的另一篇博客,看看到底有多少前端框架;另外一個(gè)是在Github上貼出了代碼,用html原生的函數(shù)document.querySelector()去獲取dom的信息,其主要的原理跟第一個(gè)人意思差不多。
歸結(jié)起來就是:不同的框架有不同框架所使用的特定的keyWord,比如說在Angular中我們用 “ ng-*?”來作為特定的指令標(biāo)識(shí),在React中我們用reactid等標(biāo)識(shí),那么可以通過搜尋這些關(guān)鍵字的方式去獲取該網(wǎng)站的框架(當(dāng)然這個(gè)方法不是萬(wàn)能的,但也是想對(duì)有效的方式之一)
代碼如下:
if(!!window.React ||!!document.querySelector('[data-reactroot], [data-reactid]'))console.log('React.js');if(!!window.angular ||!!document.querySelector('.ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]') ||!!document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]'))console.log('Angular.js');if(!!window.Backbone) console.log('Backbone.js'); if(!!window.Ember) console.log('Ember.js'); if(!!window.Vue||!!document.querySelector('[v-if],[v-for],[v-show]')) console.log('Vue.js'); if(!!window.Meteor) console.log('Meteor.js'); if(!!window.Zepto) console.log('Zepto.js'); if(!!window.jQuery) console.log('jQuery.js');直接將上面的代碼注入到控制臺(tái)中
就會(huì)直接打印出你的前端js框架,但是對(duì)于有些頁(yè)面時(shí)不行的,所有你需要多打開多個(gè)頁(yè)面一個(gè)個(gè)的試,我測(cè)試了以前做過的一個(gè)項(xiàng)目,用Angular寫的,在首頁(yè)上測(cè)試時(shí)是失敗的,但是隨便點(diǎn)開個(gè)登陸頁(yè)面就直接顯示了,所有用這個(gè)方法也得有一定的耐心
當(dāng)然對(duì)于有的網(wǎng)站無論你測(cè)試多少個(gè)都不行,這個(gè)時(shí)候你就得去點(diǎn)開Sources去讀代碼了
對(duì)于不同得框架估計(jì)有不同的引用文件,還是慢慢細(xì)心得取找,我找這個(gè)頁(yè)面的登陸界面,然后發(fā)現(xiàn)了它請(qǐng)求接口的地方有他框架的調(diào)用,所有才確定這個(gè)網(wǎng)站的框架
所有得出了這個(gè)網(wǎng)站得前端js框架用得是Zepto,當(dāng)然這個(gè)只是我得解決方案,也許大佬有更好得解決方法,求分享?
總結(jié):我反正覺得這個(gè)技能貌似沒什么卵用,但老師給活了總不能不干,就這樣吧
總結(jié)
以上是生活随笔為你收集整理的如何通过网页获取该网站的js框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java API文档
- 下一篇: 项目组自己编写的js分页标签(百度分页)