![]() |
|
||||||||||
|
|||||
|
Мне нужно открыть окно платежной системы. Окно открывается через iFrame. В флеше создаю вызов ExternalInterface
if (ExternalInterface.available) { ExternalInterface.call("ShowWebSite", "https://myService.com/show_form?app_params=testable_app_params&format=iframe&sig=54222d8a1c2a9412b91bc0abe62e8040&ts=1296285802"); }
![]() Добавлено через 3 минуты params.wmode = "opaque"; - тоже не помогло |
|
|||||
|
Модрон-ветеринар
|
Знакомая задачка.
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>
3) Локализуйте проблему. Нарисуйте в HTML обычную кнопку и повесьте на нее для проверки вызов ShowWebSite() : Если заработает, настраивайте вызов уже из флеша - сперва просто функции с фиксированным url, если будет ок, потом уже и с передачей аргумента url. 4) Если все будет ок, теперь можно заняться настройкой расположения iframe НАД флешем. Для этого можно использовать абсолютное позиционирование блока-контейнера с флешем и блока-контейнера с iframe с использованием z-индексов. Мой пример совместного использования флеша и множественных iframe над флешем, видимость и содержимое которых управляется из флеша (в большинстве разделов там есть такая штука).
__________________
Идите первым! Последний раз редактировалось mooncar; 29.01.2011 в 12:58. |
|
|||||
|
mooncar, спасибо. Оказывается пример работал, просто этот iFrame появлялся в самом низу страницы, где его не видно, а я в запаре не обратил внимание на прокрутку. Теперь проблема в том, что он появляется сразу (видна рамка и прокрутка видна), а должен быть невидимым до вызова, ну и конечно появляться ровно посредине над флэш-приложением. Не подскажите по позиционированию?
|
|
|||||
|
Модрон-ветеринар
|
У меня это реализовано так:
1) Невидимость. Сам iframe обернут в div. Первоначально этот div имеет стиль display: none, а при вызове функции показа данному блоку задается стиль display:run-in (можно также использовать display:block, сейчас не упомню уже, почему именно run-in использовал). Делается это с помощью такой конструкции , При этом в сам iframe загружается целевая страница уже известным вам способом. То есть нечто аналогичное нужно добавить в вашей JS-функции. Классы для показа/скрытия: Соответственно изначально на упомянутый <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> В общем покропеть тут придется, нюансики есть. Но схема, приведенная мною выше, работает успешно, и даже довольно кроссбраузерна.
__________________
Идите первым! Последний раз редактировалось mooncar; 29.01.2011 в 14:10. |
|
|||||
|
Все отлично работает! Спасибо mooncar за такое детальное описание. Я пока до конца не доделал, но тут только может быть одна проблема - после оплаты или если юзер решит закрыть окно оплаты, то нужно как-то сделать display: none для div. Привязать колбек от API платежной системы попробую, но не уверен что мне удастся вызвать JS внутри моей HTML.
|
|
|||||
|
Модрон-ветеринар
|
Рад был помочь, разбирайтесь дальше. Вообще взаимодействие разных технологий - штука порой сложная, но результат стоит того.
__________________
Идите первым! |
|
|||||
|
Да потом отпишу как получилось, т. к. считаю что монетизация приложений должна быть интересна многим. Особенно без зависимости от социалок.
Я там у себя ещё ошибку нашел, может из-за этого не работало: document.getElementByID - нужно Id так как JS зависит от регистра букв. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|