如何在Chrome扩展程序或控制台命令中提取JavaScript源代码?

时间:2016-09-29 02:37:34

标签: javascript google-chrome dom google-chrome-extension inspect

HTML: <html> <script scr="http://someurl.com/jscript.js"></script></html>

我试图在chrome扩展名中提取jscript.js的源代码。

但是没有DOM对象持有js源的属性。

有没有办法提取页面上加载的JavaScript源代码? (通过使用DOM对象或一些内部对象,除了重新下载脚本)

因为..某些web服务器返回不同的源代码取决于请求包(通常是... BAD服务器那样做)。因此,如果我尝试使用不同的请求下载它,我就无法获得浏览器中加载的相同内容。

2 个答案:

答案 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