Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2011, 15:16
Интересующийся
Отправить личное сообщение для klimashkin Посмотреть профиль Найти все сообщения от klimashkin
 
Регистрация: 05.10.2010
Сообщений: 16

Тэг <script> - src и код одновременно?
Смотрю на генератор кнопки + от Google:
http://www.google.com/webmasters/+1/button/

Если выбрать какой-нибудь язык отличный от английского, то гугл генерит следующий текст:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {lang: 'ru'}
</script>


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

ну валидацию, да, не пройдет.
но с другой стороны удобно. браузер просто проигнорирует внутреннюю вставку, в то время как скрипт plusone.js может получить нужные параметры {lang: 'ru', ...} и использовать их для своих нужд.
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2011, 16:37
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от ваый
использовать их для своих нужд
как?
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2011, 16:39
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от monolithed Посмотреть сообщение
как?
innerHTML
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2011, 16:47
Профессор
Отправить личное сообщение для ваый Посмотреть профиль Найти все сообщения от ваый
 
Регистрация: 29.06.2011
Сообщений: 445

Сообщение от e1f Посмотреть сообщение
innerHTML
именно
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2011, 17:23
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

e1f, ваый,
Очевидно, но это же полнейшая тупость, когда есть масса нормальных способов (назначить идентификатор, атрибут и пр.).
Не понимаю, для чего такие сложности ?

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

Ну это нужно у инженеров гугл спрашивать. А мне кажется, что это довольно удобный способ для задания конфигурационных параметров. А что, получить строку с параметрами {lang: 'ru'} проще простого, преобразовать в объект, еще проще. Это лучше, чем передавать параметры в атрибуте src.
monolithed, а как тебе кажется лучше было бы?
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2011, 17:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

как получить этот innerHTML из скрипта ?прошу пример ,ваый !

мне кажется, что так.
var a = document.getElementsByTagName('script'), 
	b = a.length,
	options = {};

while( b-- ) 
	if ( ~a[i].src.indexOf("plusone.js") ) 
		options = JSON.parse (  a[i].innerHTML );

alert( options.lang ); // ru ?

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

melky, можно изящнее.
Полагаю как-то так должно прокатить:
var scripts = document.getElementsByTagName('script');
var thisScript = scripts[scripts.length - 1];
var params = eval('(' + thisScript.innerHTML + ')');
Этот код располагается внутри самого скрипта, который загрузился. Здесь учитывается, что этот самый скрипт на момент загрузки будет самым последним из всех скриптов.

Последний раз редактировалось ваый, 28.07.2011 в 17:42.
Ответить с цитированием
  #10 (permalink)  
Старый 28.07.2011, 17:56
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

ваый,

можете не согласиться, однако:

1. наличие кода внутри дескрипторов script с атрибутом src
2. такой способ получения и обработки данных
3. предположение, что этот дескриптор будет последним в документе.

признак быдлокодерства.

Сообщение от ваый
а как тебе кажется лучше было бы?
1. у Google имеется JS API для подключения библиотек:
//заполнено образно
google.load("plusone", {lang : 'ru'});
gapi.plusone.render("plusone", {lang : 'ru'});

2. есть вариант с пространствами имен:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<g:plusone></g:plusone>

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск