Есть ли более простой (возможно, нативный) способ включить внешний файл сценария в браузер Google Chrome?
В настоящее время я делаю это так:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
technocake
источник
источник
Ответы:
appendChild()
это более родной способ:источник
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</ code> для вставки прямого кода JavaScriptИспользуете ли вы некоторые AJAX Framework? Используя jQuery это было бы:
Если вы не используете какие-либо рамки, то посмотрите ответ Хармена.
(Может быть, не стоит использовать jQuery только для того, чтобы сделать эту простую вещь ( или, может быть, так и есть ), но если вы уже загрузили его, то вы можете также использовать его. Я видел сайты, на которых загружен jQuery, например, с помощью Bootstrap, но все еще используйте DOM API напрямую, причем не всегда переносимым способом, вместо того, чтобы использовать для этого уже загруженный jQuery, и многие люди не осознают тот факт, что даже
getElementById()
он не работает согласованно во всех браузерах - см. этот ответ . )ОБНОВИТЬ:
Прошло много лет с тех пор, как я написал этот ответ, и я думаю, что здесь стоит указать, что сегодня вы можете использовать:
динамически загружать скрипты. Они могут быть актуальны для людей, читающих этот вопрос.
См. Также: выступление Ги Бедфорда «Fluent 2014»: практические рабочие процессы для модулей ES6 .
источник
$.getScript('script.js');
или$.getScript('../scripts/script.js');
тогда, это относительно документа, но он также может загружать абсолютные URL, например.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
В современных браузерах вы можете использовать fetch для загрузки ресурса ( документы Mozilla ) и затем eval для его запуска.
Например, чтобы скачать Angular1, вам нужно набрать:
источник
eval
, со следующим сообщением:VM1929:11 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
В Chrome лучшим вариантом может быть вкладка «Фрагменты кода» в разделе «Источники» в инструментах разработчика.
Это позволит вам писать и запускать код, например, на пустой странице about :.
Дополнительная информация здесь: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=ru.
источник
Как продолжение ответа @ maciej-bukowski выше ^^^ , в современных браузерах (весна 2017 г.), которые поддерживают async / await, вы можете загрузить следующим образом. В этом примере мы загружаем библиотеку load html2canvas:
Если вы запустите сниппет, а затем откроете консоль браузера, вы увидите, что теперь определена функция html2canvas ().
источник
источник
Если кому-то не удастся загрузить, потому что hes script нарушает script-src «Content Security Policy» или «unsafe-eval» не разрешен », я посоветую использовать мой довольно маленький модуль-инжектор в качестве фрагмента dev-tools, тогда вы сможете загрузить так:
это решение работает потому что:
источник
Я использую это , чтобы загрузить kò объект нокаута в консоли
или хост локально
источник
Установите tampermonkey и добавьте следующий код пользователя с одним (или несколькими)
@match
с определенным URL-адресом страницы (или соответствием всех страниц :),https://*
например:Всякий раз, когда вам нужна библиотека на консоли или во фрагменте, включите определенный код пользователя и обновите.
Это решение предотвращает загрязнение пространства имен . Вы можете использовать пользовательские пространства имен, чтобы избежать случайного перезаписи существующих глобальных переменных на странице.
источник