POST, чтобы открыть окно JavaScript и Flash закрыть окно - PullRequest
1 голос
/ 30 ноября 2011

Это довольно сложный сценарий, поэтому, пожалуйста, не обращайте на меня внимания.

Я создал приложение Flash, которое считывает данные POST из формы.Пользователь нажимает кнопку, и данные публикуются во флэш-приложении в новом окне (_blank).Теперь берет данные, а затем крутит колесо, чтобы дать пользователям приз.Если они не выигрывают, появляется сообщение о том, что они не выиграли.Если они не выигрывают, нажмите кнопку ОК, чтобы закрыть окно браузера.

Я пробовал несколько решений, и кажется, что единственный способ сделать это - запустить окно с помощью JavaScript.и затем используйте ExternalInterface.call('window.close');, чтобы закрыть окно из скрипта действий Flash (3), потому что в противном случае окно не закроется (я безуспешно пытался использовать window.close и window.close ())

Я понимаю, как запустить новое окно с помощью JavaScript, но я не знаю, как одновременно запускать и отправлять данные POST в это окно (приложение Flash должно иметь данные POST.

Является ли это лучшимРешение? Есть ли способ закрыть окно браузера проще, чем я описываю?

Любая помощь будет принята с благодарностью.

Демонстрацию можно посмотреть здесь: http://rgwheel.phase-change.org/click.php

1 Ответ

2 голосов
/ 30 ноября 2011

Не уверен, правильно ли я вас понял :) Вы хотите каким-то образом получить данные POST из родительской формы окна в объект javascript flashvars в вашем дочернем окне?

Если я вас правильно понял, это довольно просто: вы можете получить доступ к данным родительского окна из дочернего окна. Просто измените код JavaScript в вашем дочернем окне из этого:

var flashvars = {};
flashvars.spinID="12345";flashvars.prizeTier="1";flashvars.totalSpins="100";var params = {};
var attributes = {};
swfobject.embedSWF("rrw_new_Final_ianb.swf", "flashDiv", "775", "819", "10.0.0", false, flashvars, params, attributes);

В это:

var flashvars = {};
// here you get access to the form of the parent window
var parentForm = window.opener.document.getElementsByTagName('form')[0];

// and here you can populate your flashvars with values from that form's inputs:
flashvars.spinId = parentForm.spinID.value;
flashvars.prizeTier = parentForm.prizeTier.value;
// and so on. Of course, you can do it with any javascript framework

var params = {};
var attributes = {};
swfobject.embedSWF("rrw_new_Final_ianb.swf", "flashDiv", "775", "819", "10.0.0", false, flashvars, params, attributes);

Ах, и я полагаю, вам нужно использовать javascript, чтобы открыть новое окно, а не целевой атрибут формы. Как это:

<form action="/" method="post" onsubmit="window.open()">

Вы можете настроить размер, положение и другие свойства дочернего окна, как показано здесь: http://www.javascript -coder.com / window-popup / javascript-window-open.phtml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...