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 に答える