Сообщение от monolithed
|
Этот код не отработает:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">{lang: 'ru'}</script>
<script type="text/javascript">
var scripts = document.getElementsByTagName('script');
alert(eval('(' + scripts[scripts.length - 1].innerHTML + ')').lang);
</script>
|
Конечно, не отработает. Но я утверждаю, что следующий код отработает:
<script type="text/javascript" src="domain.com/script.js">
{lang: 'ru'}
</script>
Содержимое script.js:
var scripts = document.getElementsByTagName('script');
alert(eval('(' + scripts[scripts.length - 1].innerHTML + ')').lang);
Я же о том и говорю, что сам скрипт, указанный в атрибуте src, может получить легко доступ к содержимому своего же собственного тэга script.
Пруф:
<html>
<head></head>
<body>
<script>
var a = 21;
</script>
<script src="test.js">
{'lang': 'ru'}
</script>
<script>
var b = 17;
</script>
</body>
</html>
test.js:
var scripts = document.getElementsByTagName('script');
var thisScript = scripts[scripts.length - 1];
var params = eval('(' + thisScript.innerHTML + ')');
alert(params.lang);
Прекрасно работает.