Представитель Шуры Люберецкого в ЖЖ (brat_luber) wrote,
Представитель Шуры Люберецкого в ЖЖ
brat_luber

Make me unsee it

Приходится иногда сталкиваться в программировании с такими “костылями”, что даже не знаешь, стоять или падать.

Вот, например, извращенная задачка в веб-программировании. Есть два сайта – один на ASP.NET под IIS, другой на PHP под Apache. Первый крутится по адресу, к примеру, http://webserver:80/, другой – http://webserver:8080/. Задача – на первом сайте есть ссылка, открывающая окошко со страничкой второго сайта, оттуда надо передать JavaScript-ом какие-то данные в родительское окно. Думаю, все видели вот такие “палитры”, так что представить в состоянии.

Разница в том, что “палитра” расположена немного по другому адресу и может подпадать под блокировку “кроссдоменной” передачи данных. Причем самое интересное – это то, что каждый из трех популярных браузеров понимает “кроссдоменность” по-разному.

Internet Explorer всех версий вообще не делает различий между domain.com:80 и domain.com:8080. Соответственно, все работает правильно.

Firefox считает такие “домены” разными и по умолчанию блокирует передачу. Правда, спасает вот такое заклинание, произнесенное перед открытием “палитры” в родительском окне и в дочернем – до передачи данных:

document.domain = document.domain;

Смысл заклинания совершенно необъясним, поэтому “это нельзя понять, это надо запомнить”.

Opera на такие дешевые трюки не ведется и блокирует передачу данных между этими окнами в любом случае. Самый безопасный браузер, хуле.

Вопрос фанатам “альтернативных браузеров”: и чего же вы добились, обвиняя Microsoft и Internet Explorer во всех смертных грехах, начиная от монополизма? Похоже, только того, что в каждом из браузеров надо применять свои “костыли и подпорки”, а любая программа на JavaScript начинается с разбора трех случаев.

PS К сожалению, ни прикрутить ASP.NET к Apache, ни PHP к IIS нереально – апачевский модуль для ASP.NET совершенно не хочет работать, а PHP-шная часть сайта существенно использует апачевские возможности по работе с .htaccess.

Запись опубликована в блоге Шуры Люберецкого. Вы можете оставлять свои комментарии там, используя свое имя пользователя из ЖЖ (вход по OpenID).

Tags: программирование, сайтоводство, технологии высокаго пошибу
Subscribe

  • Про гиков

    Прочитал статейку на Look at Me под совершенно прекрасным заголовком – “ Гики в России: Как стать свободным в стране, которой ты не…

  • Про майданобесие

    Иногда просматриваю в твиттере несколько аккаунтов, которые ведут вроде бы нормальные люди, но при этом активно поддерживающие (поддерживавшие?)…

  • По делам их узнаете их

    Наблюдаю за реакцией различных политически активных персонажей на штурм мятежного Славянска и вообще события на востоке Украины и в Одессе. Стоит…

Comments for this post were disabled by the author