Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Работа над сайтом > HTML/DHTML/CSS/JS/VB

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2011, 11:33
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 1  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию IFrame окно НАД флешем

Мне нужно открыть окно платежной системы. Окно открывается через iFrame. В флеше создаю вызов ExternalInterface

Код AS3:
if (ExternalInterface.available) {
		ExternalInterface.call("ShowWebSite", "https://myService.com/show_form?app_params=testable_app_params&format=iframe&sig=54222d8a1c2a9412b91bc0abe62e8040&ts=1296285802");
				}
Вызываем JS функцию:

PHP код:
<script laguage='javascript'>
      function 
ShowWebSite(url)
       {
          
//Разными способами пробую
          
document.getElementByID('iFrameID').src=url;
        
//parent.frames['iFrameID'].location.href=url;
        //window.frames.iFrameID.location.href=url;
      
}
   
</script>
// в body
 <iframe id="iFrameID" width="430" height="400" scrolling="no" style="border: 1px solid #ccc;"></iframe> 
Нет окна

Добавлено через 3 минуты
params.wmode = "opaque"; - тоже не помогло

Старый 29.01.2011, 12:43
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Знакомая задачка.

1) Попробуйте такую запись:
JS:
Код:
<script language="javascript">
function ShowWebSite() 
{ 
 var node =  document.getElementById('iFrameID');
 node.src = 'https://myService.com/show_form?app_params=testable_app_params&format=iframe&sig=54222d8a1c2a9412b91bc0abe62e8040&ts=1296285802'; 
} 
</script>
2) В AS не забудьте импортировать сам класс:
Код AS1/AS2:
import flash.external.*;
3) Локализуйте проблему. Нарисуйте в HTML обычную кнопку и повесьте на нее для проверки вызов
ShowWebSite() :
Код:
<input name="" type="button" onclick="ShowWebSite()"/>
Если заработает, настраивайте вызов уже из флеша - сперва просто функции с фиксированным url, если будет ок, потом уже и с передачей аргумента url.

4) Если все будет ок, теперь можно заняться настройкой расположения iframe НАД флешем. Для этого можно использовать абсолютное позиционирование блока-контейнера с флешем и блока-контейнера с iframe с использованием z-индексов.

Мой пример совместного использования флеша и множественных iframe над флешем, видимость и содержимое которых управляется из флеша (в большинстве разделов там есть такая штука).
__________________
Идите первым!


Последний раз редактировалось mooncar; 29.01.2011 в 12:58.
Старый 29.01.2011, 13:36
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 3  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
mooncar, спасибо. Оказывается пример работал, просто этот iFrame появлялся в самом низу страницы, где его не видно, а я в запаре не обратил внимание на прокрутку. Теперь проблема в том, что он появляется сразу (видна рамка и прокрутка видна), а должен быть невидимым до вызова, ну и конечно появляться ровно посредине над флэш-приложением. Не подскажите по позиционированию?

Старый 29.01.2011, 13:56
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
У меня это реализовано так:

1) Невидимость.
Сам iframe обернут в div.
Первоначально этот div имеет стиль display: none, а при вызове функции показа данному блоку задается стиль display:run-in (можно также использовать display:block, сейчас не упомню уже, почему именно run-in использовал).

Делается это с помощью такой конструкции
Код:
var divnode = document.getElementById('divcont' + curContent);
divnode.className = 'vis_on';
,
При этом в сам iframe загружается целевая страница уже известным вам способом. То есть нечто аналогичное нужно добавить в вашей JS-функции.

Классы для показа/скрытия:
Код:
.vis_on {
	display:run-in;
}
.vis_off {
	display: none;
}
Соответственно изначально на упомянутый <div> назначен класс vis_off.

2) Позиционирование блока с iframe - position:absolute; z-index:2 , ну и размещен он где нужно над страницей.
Позиционирование блока с флешкой - position:absolute; z-index:0, также расположен, где нужно.

Как удобнее работать - первоначально отключить невидимость блока с iframe, и задать бордюр, чтобы удобнее было подгонячть на странице.

Посмотрите код на странице примера, который я привел, возможно что-то поможет.
Вот выдранный оттуда кусок с iframe:
Код:
<div id="divcont2" style="position:absolute; left: 390px; top: 80px; width: 484px; height: 236px; z-index:2;" class="vis_off">
	<iframe id="cont2" src="about:blank" name="cont2" frameborder="0" width="484" height="236" marginwidth="0" marginheight="0" scrolling="auto" allowtransparency="true" style="background-color:transparent;"></iframe>
</div>
Что касается скроллига внутри самого iframe, то устанвленный scrolling="auto" - тут чисто мой случай, сами страницы не должны вылезать по ширине за размеры iframe, а должна появляться только вертикальная прокрутка. У меня это достигается фиксацией ширины в вверстке самих страниц.

В общем покропеть тут придется, нюансики есть. Но схема, приведенная мною выше, работает успешно, и даже довольно кроссбраузерна.
__________________
Идите первым!


Последний раз редактировалось mooncar; 29.01.2011 в 14:10.
Старый 29.01.2011, 15:13
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 5  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Все отлично работает! Спасибо mooncar за такое детальное описание. Я пока до конца не доделал, но тут только может быть одна проблема - после оплаты или если юзер решит закрыть окно оплаты, то нужно как-то сделать display: none для div. Привязать колбек от API платежной системы попробую, но не уверен что мне удастся вызвать JS внутри моей HTML.

Старый 29.01.2011, 15:25
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Рад был помочь, разбирайтесь дальше. Вообще взаимодействие разных технологий - штука порой сложная, но результат стоит того.
__________________
Идите первым!

Старый 29.01.2011, 15:33
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 7  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Да потом отпишу как получилось, т. к. считаю что монетизация приложений должна быть интересна многим. Особенно без зависимости от социалок.
Я там у себя ещё ошибку нашел, может из-за этого не работало: document.getElementByID - нужно Id так как JS зависит от регистра букв.

Старый 02.02.2011, 16:04
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 8  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Тут ещё проблемка с этим окном нарисовалась. Везде нормально, а в IE под флэшкой выводится.
Не подскажите как решить?

Добавлено через 1 час 7 минут
Решил. Пришлось долго мудрить с z-index и pozition

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.