javascript - POST 以打开 javascript 窗口并让 Flash 关闭窗口

标签 javascript flash actionscript-3

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

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

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

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

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

最佳答案

不确定我是否理解正确:) 您想以某种方式将 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

关于javascript - POST 以打开 javascript 窗口并让 Flash 关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320044/

相关文章:

javascript - 如何仅使用 jquery 将导航栏固定在大屏幕顶部

javascript - 使用 jQuery-Resizable 调整 2 个 div 的宽度

javascript - JS/Flash - 拖动包含 img 的 anchor vs 拖动不带 anchor 的图像 - 如何获取 anchor 内的 img?

javascript - Jquery - 编辑对象参数

actionscript-3 - 调整文本字段大小以适合所有文本的最佳方法

javascript - 我该如何修复 'Maximum call stack size exceeded' AngularJS

javascript - 将自定义类名添加到 jquery 日历单元格

javascript - 我怎样才能制作像 http ://www. 20thingsilearned.com/这样的在线书籍

actionscript-3 - 是否可以将 flash 套接字和 websockets 与套接字 io 同时使用?

android - 为什么在针对 Android 时我的 TextField 在屏幕上这么小?