Содержимое не выполняется, поскольку элемент имеет атрибут src
. Это не совсем законно, как есть. HTML5 spec говорит:
Если имеется атрибут src
, элемент должен быть либо пустым, либо содержать только документацию сценария, которая также соответствует ограничениям содержимого сценария.
Содержимое этого элемента <script>
не является ни допустимым JSON, ни допустимым JavaScript. Это недопустимый JSON, потому что имена свойств не заключены в кавычки. Это недопустимый JavaScript, потому что, хотя он выглядит как блочное выражение с помеченными операторами, двоеточие после startInNewWindow
не может быть там юридически.
При этом загруженный скрипт всегда может найти последний элемент скрипта и проанализировать его содержимое:
var scripts = document.getElementsByTagName('SCRIPT');
var lastScript = scripts[script.length - 1];
var content = eval(lastScript.innerText || lastScript.textContent);