有點新手問題,但獲得列表中所有JS文件全名路徑的最佳方式是什麼?獲取網頁上加載的所有JS文件的列表
澄清:我有一個頁面www.mypage.com - 我想獲得所有JS文件的列表,其全名路徑在本頁面加載。
有點新手問題,但獲得列表中所有JS文件全名路徑的最佳方式是什麼?獲取網頁上加載的所有JS文件的列表
澄清:我有一個頁面www.mypage.com - 我想獲得所有JS文件的列表,其全名路徑在本頁面加載。
類似的東西將在現代瀏覽器與ECMAScript的6支持做。但是,某些腳本可能會刪除其適當的標籤,這些標籤會將其隱藏在該列表中。
var jsFilePaths = Array.prototype.slice
.apply(document.querySelectorAll('script'))
.filter(s => s.src)
.map(s => s.src);
使用正常for
週期如果lambdas不是選項。
通過一些數據加載方法(如XHR或JSONP)加載並通過eval
或new Function
執行的腳本也不會顯示出來。
如果您需要攔截和記錄XHR時,你不必所有XHR時都做了集中的地方,你可能需要重寫XMLHttpRequest
並添加一些邏輯到其readystatechange
事件檢查接收到的響應是否爲可執行的JavaScript,請參閱此問題以獲取更多信息:How to easily listen for xhr requests with javascript?。
如果您需要攔截時<script>
被添加到DOM或有其src
屬性操作,您可以使用DOM MutationObserver
,看到an MDN article以獲取更多信息的所有情況。
您可能還需要攔截document.write
並查看某些腳本是否添加了更多的內聯腳本。此外,像<img/>
這樣的非腳本元素也可以運行腳本,就像在着名的XSS黑客<img src="http://nonexistent.url/x.png" onerror="alert('xss!')" />
中一樣。
此外,重要的是要注意,任何此類XHR攔截,特別是DOM突變事件和DOM MutationObserver的使用對頁面的性能有害,有時相當明顯。
對於當前頁面或所有頁面?當前頁面,打開開發工具查看網絡選項卡,篩選腳本。或者querySelectorAll並遍歷集合。如果整個網站,這意味着寫一個蜘蛛。 – epascarello
當前頁面...我做到了,但沒有一個簡單的方法來同時複製所有數據 –