如何在 Chrome 扩展或控制台命令上提取 JavaScript 源?
How can I Extract JavaScript Source on Chrome Extension or Console-Command?
HTML :
<html> <script scr="http://someurl.com/jscript.js"></script></html>
我正在尝试在 chrome 扩展中提取 jscript.js 的源代码。
但是没有属性DOM Object holding source of js.
有没有办法提取页面上加载的JavaScript的源代码?
(通过使用 DOM 对象或一些内部对象,除非重新下载脚本)
因为.. 一些网络服务器 returns 不同的源代码取决于请求数据包(通常.. BAD 服务器会这样做)。所以如果我尝试用不同的请求下载它,我无法获得与浏览器上加载的相同的请求。
根据 Is external JavaScript source available to scripting context inside HTML page?,如果不重新下载通常是不可能的,因为它没有暴露给 DOM。
但是,扩展程序 可以挂接到浏览器可用的信息。
最简单的方法是创建一个 DevTools extension. It would only work when the DevTools are open on the page, but then you can easily access the source with chrome.devtools.inspectedWindow.getResources()
。
有点难,但是可以使用 chrome.debugger
API to achieve the same while DevTools are closed. It's a low-level API, but it allows doing everything DevTools can do. I don't have a ready example, but Debugger Protocol 文档会有所帮助。
内容脚本都不可能。
您也可以直接转到文件系统上的扩展名:
Where to find extensions installed folder for Google Chrome on Mac?
例如在我的 mac 书本电脑上:
pwd
输出:~/Library/Application\ Support/Google/Chrome/Default/Extensions/hkbhjllliedcceblibllaodamehmbfgm/1.7.1_0
HTML :
<html> <script scr="http://someurl.com/jscript.js"></script></html>
我正在尝试在 chrome 扩展中提取 jscript.js 的源代码。
但是没有属性DOM Object holding source of js.
有没有办法提取页面上加载的JavaScript的源代码? (通过使用 DOM 对象或一些内部对象,除非重新下载脚本)
因为.. 一些网络服务器 returns 不同的源代码取决于请求数据包(通常.. BAD 服务器会这样做)。所以如果我尝试用不同的请求下载它,我无法获得与浏览器上加载的相同的请求。
根据 Is external JavaScript source available to scripting context inside HTML page?,如果不重新下载通常是不可能的,因为它没有暴露给 DOM。
但是,扩展程序 可以挂接到浏览器可用的信息。
最简单的方法是创建一个 DevTools extension. It would only work when the DevTools are open on the page, but then you can easily access the source with chrome.devtools.inspectedWindow.getResources()
。
有点难,但是可以使用 chrome.debugger
API to achieve the same while DevTools are closed. It's a low-level API, but it allows doing everything DevTools can do. I don't have a ready example, but Debugger Protocol 文档会有所帮助。
内容脚本都不可能。
您也可以直接转到文件系统上的扩展名:
Where to find extensions installed folder for Google Chrome on Mac?
例如在我的 mac 书本电脑上:
pwd
输出:~/Library/Application\ Support/Google/Chrome/Default/Extensions/hkbhjllliedcceblibllaodamehmbfgm/1.7.1_0