1

我一直试图弄清楚这一点......

我有一个 Flex (Flash) 应用程序,我被称为 JavaScript 函数并传入数据:

if (ExternalInterface.available)
ExternalInterface.call("jsFunctionToCalled", passingSomeData);

在我的 index.template.html 文件中,我创建了 JS 函数:

<script type="text/javascript">
function jsFunctionToCalled(value) {
window.alert(value);
}
</script>  

当我单击 Flex 中的 Button 组件时,会弹出该 JS 警报窗口。效果很好;但是,我想打开一个浏览器窗口,我可以在其中访问“文件/打印”选项。我需要打开这个新的浏览器窗口并解析值对象中的数据。值对象是 HTML 格式数据的字符串。所以我需要在新的弹出窗口上显示该数据。我在想也许我需要做这样的事情,有人在某处张贴,但没有弹出。我也尝试了 window.opener 并没有弹出任何内容。如果我提供 URL,它会很好地打开 URL,但我不想打开 URL,我想打开一个可以打印的新窗口,并用 HTML 数据填充窗口。

<script>
function openWin()
{
myWindow=window.open('','','width=200,height=100');
myWindow.document.write("This is 'myWindow'!");
myWindow.focus();
myWindow.opener.document.write("<p>This is the source window!</p>");
}
</script>

任何帮助将不胜感激。我正在尝试一种能够打印的方法,而无需先保存文件(CRAPPY FLASH),并且我没有将文件保存到的 Web 服务器,以避免先保存文件。

谢谢

4

2 回答 2

1

我想出了这一点,并认为我会与其他遇到此问题的人分享:

在我的弹性代码中:

if (ExternalInterface.available)
            {
                try
                {
                    ExternalInterface.call("onPrintRequest", dataToPass);
                }
                catch (error:SecurityError)
                {
                    Alert.show("Printing Security Error");
                }
                catch (error:Error)
                {
                    Alert.show("Printing Error");
                }
            }
            else
            {
                Alert.show("Printing currently unavailable");
            }

在我的 index.template.html 中,我添加了这个 JS 方法:

 <script type="text/javascript">
            function onPrintRequest(value) {
                var w = window.open("about:blank");
                w.document.write(value);
                w.document.close();
                w.focus();
                w.print();
            }
        </script>

奇迹般有效!!!

于 2013-07-05T13:58:29.490 回答
0

上述更改完美运行....

一个补充 - 如果您想在打印后自动关闭新窗口,请在脚本中添加 w.close()

 <script type="text/javascript">
 function onPrintRequest(value) {
            var w = window.open("about:blank");
            w.document.write(value);
            w.document.close();
            w.focus();
            w.print();
            w.close();
        }
</script>
于 2018-12-12T06:38:39.353 回答