Показать сообщение отдельно
  #1 (permalink)  
Старый 12.10.2013, 23:11
Новичок на форуме
Отправить личное сообщение для Mikee Посмотреть профиль Найти все сообщения от Mikee
 
Регистрация: 12.10.2013
Сообщений: 1

Подключение скрипта с другого домена
Все вы наверное слышали про same-origin policy.
Вот и я слышал, и думал, что загрузив скрипт с другого домена при помощи <script src="... нельзя получить доступа к документу, в котором было сделано это подключение.

Но все таки я решил проверить. И каково было мое удивление, когда я не обнаружил никакого ограничения. Ни в одном браузере, в котором я тестировал. Посмотрите сами.

Документ http://lingcom.ru/i.htm, который подключает скрипт http://http11.ru/j.js с другого домена.
Для чистоты эксперимента я даже разместил эти файлы на разных хостингах, так что отличаются даже IP.

Надо кликнуть на ссылку или отправить форму (можно даже кликнуть справа от формы) и вы увидите alert() с соответствующими данными.

Содержимое скрипта тривиально. Я регистрирую куда ушел посетитель, если он сделал это посредством ссылки или отправки формы. Я вешаю обработчик события на весь документ и отлавливаю клики, читая href. Так же я вешаю обработчик события на все формы и отлавливаю onsubmit, читая параметры method и action.
document.onclick = event_target;
// в IE событие onsubmit не всплывает
for ( var i = 0; i < document.forms.length; ++i )
	document.forms[i].onsubmit = event_target;

function event_target( e )
{
	if ( e ) var target = e.target;
	else var target = window.event.srcElement;

	if ( typeof target.action != 'undefined' ) alert( target.method +':'+ target.action );
	else if ( typeof target.href != 'undefined' ) alert( target.href );
}

В чем дело? А как же same-origin policy?

Последний раз редактировалось Mikee, 12.10.2013 в 23:20.
Ответить с цитированием