Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кросдоменный глюк 
V
    Опции темы
bars80080
Дата 7.6.2012, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



есть страница www.magazine.ru
на ней есть фрейм

Код

<iframe src="http://www.site.ru/win/">
</iframe>


серверный скрипт по адресу www.site.ru/win/ генерирует страничку с фреймом и неким адресом в том же домене

Код

<script type="text/javascript">
var OLD_HEIGHT = 0;
function autoIframe(frameId){ 
    try { 
        frame = document.getElementById(frameId);
        innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
        if($(innerDoc).find('body').length > 0) { innerDoc = $(innerDoc).find('body').eq(0); }
        var h = $(innerDoc).height() + 20;
        if(h < 200) { h = 1000; }
        var diffh = Math.abs(h - OLD_HEIGHT);
        
        if(h < 200 || diffh < 60) { return; }
        OLD_HEIGHT = h;
        $('#' + frameId).height(h);
    } 
    catch(err){ 
    } 
}
setInterval("autoIframe('PAYFR')", 1000);
</script>
<iframe id="PAYFR" src="http://www.site.ru/search/" scrolling="no" frameborder="no" 
 onload="if (window.parent && window.parent.autoIframe) {window.parent.autoIframe('PAYFR');}"></iframe>


где в src сервером подставляется либо http://www.site.ru/search/ либо http://www.site.ru/result/

функция занимается перестройкой высоты фрейма PAYFR под размеры внутреннего документа. сделано это для ликвидации лишних скролов, так как получается система фрейм во фрейме. (почему нельзя было обойтись одним фреймом - другой вопрос. просто нельзя)

возникла неожиданная проблема, хотя www.site.ru/search/ и www.site.ru/result/ один и тот же домен, но для адреса www.site.ru/search/ высота пересчитывается, а для www.site.ru/result/ нет. под "нет" подразумевается, что высота всегда определяется высотой фрейма www.site.ru/win/

ошибка же есть всегда 
Цитата

Unsafe JavaScript attempt to access frame with URL http://www.magazine.ru from frame with URL http://www.site.ru/win/. Domains, protocols and ports must match.

но она вылетает одинаково на обоих адресах

что может вносить разницу?
понятное дело вопрос не конкретный, но и ответ получается может быть общим.
к примеру, может ли какая ссылка из css-файла на странице  www.site.ru/result/ , ведущая на иной домен вызывать сбой работы js?
или ещё что?

Это сообщение отредактировал(а) bars80080 - 7.6.2012, 13:16
PM MAIL WWW   Вверх
bars80080
Дата 7.6.2012, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



всё, допёр в чём дело

ошибка не причём, она из-за другого, а подстраиваться фрейму под вторую страницу в самом деле не давало правило в css:

Код

html, body { height: 100%; }

PM MAIL WWW   Вверх
Aliance
Дата 7.6.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Ошибка как бы в том, что JS не имеет доступа к мтеодам и переменным объявленным в документе, с другого домена.
PM MAIL WWW ICQ Skype   Вверх
bars80080
Дата 7.6.2012, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



Цитата(Aliance @  7.6.2012,  17:54 Найти цитируемый пост)
Ошибка как бы в том, что JS не имеет доступа к мтеодам и переменным объявленным в документе, с другого домена. 

проблема была не в этом, что видно, если прочитать первый пост
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1013 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.