Показать сообщение отдельно
  #14 (permalink)  
Старый 28.07.2011, 18:32
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от 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);

Прекрасно работает.

Последний раз редактировалось ваый, 28.07.2011 в 18:44.
Ответить с цитированием