Я знаю, что с базовым JS вы можете прочитать исходный код <script>
так:
<pre id="scriptContents"></pre>
<script id="myScript" type="text/javascript">
var script = document.getElementById('myScript');
var contents = script.innerHTML;
scriptContents.innerText = contents;
</script>
Итак, мой вопрос: Есть ли что-то подобное в Greasemonkey/Tampermonkey? Я хочу иметь возможность читать исходный код сценария Greasmonkey в виде строки.
Причина, по которой я спрашиваю, заключается в том, что скрипт Greasemonkey волшебным образом включен на страницу и не имеет «физического» представления, такого как приведенный выше блок <script>
.
Дополнительная информация: я пишу скрипт, но для него нужно много стилей, а также шаблон Mustache, который очень сложно предоставить в JavaScript в удобочитаемой форме. Я хочу предотвратить экранирование каждого символа апострофа или кавычки, а также присоединения к строке или добавления \
в конце строки. Я нашел хитрый способ сделать это, но все еще ищу альтернативы. Вот текущая версия:
function hereDoc(f) { return f.toString().replace(/^[^\/]*\/\*!/, '').replace(/\*\/[^\/]*$/, ''); }
$('head').append(hereDoc(function() {/*!
<script id="template" type="x-tmpl-mustache">
<div>...
</script>
<style type="text/css">
lots.of #css { code: here; }
</style>
*/}));