Показать сообщение отдельно
Старый 07.12.2008, 19:12
Smirnov48 вне форума Посмотреть профиль Отправить личное сообщение для Smirnov48 Найти все сообщения от Smirnov48
  № 1  
Ответить с цитированием
Smirnov48

Регистрация: Feb 2008
Сообщений: 72
По умолчанию Товарищи будьте бдительны! Или вызов скриптов JavaScript через getURL и поведение IE

Нужда заставила ставить куки в браузере. Нашел в инете такой код:
Код AS1/AS2:
function setCookie(cookieName, cookieValue):Void {
	var js = "javascript:function sc(){";
	js += "var c = escape('" + cookieName + "') + '=' + escape('" + cookieValue + "') + '; path=/';";
	js += "document.cookie = c;";
	js += "}sc();";
	getURL(js);
}
После его использования обнаружилось, что нежный IE6/IE7 просто сходит с ума от таких манипуляций. Половина картинок прекращают загружаться, в гивках встает анимация, прекращают корректно отрабатывать JavaScript-ы. В итоге можете представить, что получается со страничкой...
После переписи на ExternalInterface
Код AS1/AS2:
function setCookie(cookieName, cookieValue):Void {
		var js = "function (){";
		js += "var c = escape('" + cookieName + "') + '=' + escape('" + cookieValue + "') + '; path=/';";
		js += "document.cookie = c;";
		js += "}";
		ExternalInterface.call(js);
	}
Все стало работать нормально.

Так вот сделал для себя вывод, что лучше всегда использовать ExternalInterface для выполнения JS функций. Иначе пользователи IE рискуют увидеть страничку такой, какой ее лучше никому не показывать

PS. Если флешка и страничка лежат на одном и том же домене, проблема практически не возникает. Но стоит разделить их по разным доменам, так IE ломается практически со 100% вероятность.