POST到打开的javascript窗口并让Flash关闭窗口

时间:2011-11-30 01:23:05

标签: javascript flash actionscript-3

这是一个非常复杂的场景,所以请光临我。

我创建了一个从表单中读取POST数据的Flash应用程序。用户单击该按钮,数据将在新窗口(_blank)中发布到Flash应用程序。现在获取数据然后旋转一个轮子给用户奖励。如果他们没有赢得一条消息弹出让他们知道他们没有赢。如果他们没有赢,单击确定按钮需要关闭浏览器窗口。

我尝试了很多解决方案,似乎完成此操作的唯一方法是使用javascript启动窗口,然后使用ExternalInterface.call('window.close');从Flash actionscript(3)中关闭窗口,因为否则窗口不会关闭(我尝试过只使用window.close和window.close()而没有运气)

我了解如何使用javascript启动新窗口,但我不知道如何同时启动和POST数据到该窗口(Flash应用程序必须具有POST数据。

这是最好的解决方案吗?有没有办法比我描述的更容易关闭浏览器窗口?

非常感谢任何帮助。

可以在此处查看演示:http://rgwheel.phase-change.org/click.php

1 个答案:

答案 0 :(得分:2)

不确定我是否正确:) 你想以某种方式从父窗口窗体中获取POST数据到你孩子窗口的flashvars javascript对象?

如果我说得对,那很简单:你可以从子窗口访问父窗口数据。只需更改子窗口中的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