【问题标题】:POST to opened javascript window and have Flash close the windowPOST 到打开的 javascript 窗口并让 Flash 关闭窗口
【发布时间】:2011-11-30 01:23:05
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript flash actionscript-3


    【解决方案1】:

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

    【讨论】:

    • 谢谢。这绝对可以解决问题。我还发现 target="_blank" 也可以。好像 JS 可以关闭那个窗口,因为它不是父窗口。再次感谢!
    • IMO,target="_blank" 打开子窗口很奇怪,而不是合乎逻辑。
    • 我的意思是,如果 target="_blank" 像“在新选项卡/窗口中打开链接”一样工作会更有意义 - 并且会打开完全独立的窗口,仅与前一个窗口连接历史对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 2013-12-30
    • 2018-05-16
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    相关资源
    最近更新 更多