1

HTML: <html> <script scr="http://someurl.com/jscript.js"></script></html>Как я могу извлечь источник JavaScript в расширение Chrome или консольную команду?

Я пытаюсь извлечь исходный код jscript.js в расширении хром.

Но нет атрибута объекта DOM, содержащего источник js.

Есть ли способ извлечь исходный код JavaScript, который загружается на страницу? (с использованием объекта DOM или какого-либо внутреннего объекта, за исключением повторной загрузки сценария)

Потому что .. Некоторые веб-серверы возвращают разные исходные коды, зависит от пакета запроса (обычно это делают BAD-серверы). Поэтому, если я попытался загрузить его с другим запросом, я не могу получить тот же, который был загружен в браузере.

+1

Не уверен, что я понял вопрос. В devtools источник отображается на панели «Источники». В расширении вы можете использовать XMLHttpRequest или различные аналоги для повторной загрузки сценария. – wOxxOm

+0

@wOxxOm Я думаю, вопрос может быть прочитан: «Можно ли получить содержимое, используя только DOM». И, неявно, «если нет, как с этим бороться». – Xan

+0

@wOxxOM Спасибо за комментарий. Да, я видел, как их переустановить. Но я просто хотел получить их с DOM или некоторым внутренним объектом браузера :) – nemo

ответ

2

В соответствии с Is external JavaScript source available to scripting context inside HTML page?, это не нормально, без перезагрузки, поскольку он не подвергается воздействию DOM.

расширение, однако, может подключаться к информации, доступной браузеру.

Проще всего было бы создать DevTools extension. Он будет работать только тогда, когда DevTools открыты на странице, но затем вы можете легко получить доступ к источнику с помощью chrome.devtools.inspectedWindow.getResources().

Немного сложнее, но можно использовать chrome.debugger API для достижения того же, в то время как DevTools закрыты. Это низкоуровневый API, но он позволяет делать все, что может сделать DevTools. У меня нет готового примера, но поможет Debugger Protocol.

Ни один из сценариев контента не может быть выполнен.

+0

Спасибо :) Очень полезно. – nemo

Смежные вопросы