HTML:
<html> <script scr="http://someurl.com/jscript.js"></script></html>
我试图在chrome扩展名中提取jscript.js的源代码。
但是没有DOM对象持有js源的属性。
有没有办法提取页面上加载的JavaScript源代码? (通过使用DOM对象或一些内部对象,除了重新下载脚本)
因为..某些web服务器返回不同的源代码取决于请求包(通常是... BAD服务器那样做)。因此,如果我尝试使用不同的请求下载它,我就无法获得浏览器中加载的相同内容。
答案 0 :(得分:2)
根据Is external JavaScript source available to scripting context inside HTML page?,没有重新下载通常是不可能的,因为它没有暴露给DOM。
然而,扩展名可以挂钩浏览器可用的信息。
最简单的方法是创建DevTools extension。只有在页面上打开DevTools时它才有效,但是您可以使用chrome.devtools.inspectedWindow.getResources()
轻松访问源代码。
稍微困难一些,但是当DevTools关闭时,可以使用chrome.debugger
API来实现相同的目标。它是一个低级API,但它允许完成DevTools可以做的所有事情。我没有一个现成的例子,但Debugger Protocol文档会有所帮助。
内容脚本也无法实现。
答案 1 :(得分:0)
您也可以直接转到文件系统上的扩展名:
Where to find extensions installed folder for Google Chrome on Mac?
例如在我的 mac book 计算机上:
pwd
输出:~/Library/Application\ Support/Google/Chrome/Default/Extensions/hkbhjllliedcceblibllaodamehmbfgm/1.7.1_0