2016-04-07 17 views
0

私のxPageには、出力/レポート(SSJS)を生成するボタンがあります。 新しいモーダルウィンドウまたはフロートウィンドウを開き、その出力をそのウィンドウに挿入する方法はありますか?レポートの結果を表示する小さなウィンドウになるでしょう。しかし、報告は数メガビットのように巨大になるだろう。アウトプットを行ごとにいくつかのスコープ変数に入れて、それを新しいウィンドウのフィールドにバインドすることは良い考えではないとします。実現可能な解決策はありますか?HTMLレポート出力ウィンドウ/ダイアログ

+0

"小さな(モーダル)ウィンドウ" + "数メガビットのような巨大" =重大な問題 –

+0

OK Kossuth氏...このような行動を行うベストプラクティスは何ですか?いくつかのアプリケーションレポートを生成し、同じWebページまたはtxtファイルまたは電子メールメッセージでユーザーに表示する必要があります。 – VladP

+0

Paul Stephen Withersの回答に投票します。新しいウィンドウを開きます。ユーザーはCTRL + Sキーを押して保存できます。または適切なcontent-typeを使用してブラウザの保存ダイアログを自動的に表示させます。 –

答えて

2

CSJSを使用してwindow.open()を呼び出し、新しいXPage(効果的にはXAgentになります)を開く価値はありますが、これはポップアップブロッカーによって防止されます。コンポーネントツリーのシリアル化を避けるため、XAgent XPageにviewState="nostate"を設定してください。

+0

レポートはSSJSによって生成されます。そして、現在のウィンドウまたは新しいウィンドウ(レポートテキストのみ)に表示したいテキストのページ数は少なくなります。 CSJSで動作するかどうかわからない – VladP

+0

新しいブラウザウィンドウまたはダイアログを起動するには、CSJSが必要になります(SSJSのアプローチでは、ブラウザ上でダイアログを表示する 'view.postScript'がトリガされます)。ダイアログにロードされた別のURLとして)SSJSになります。 –

2

window.open()の代わりに、dojo content paneの使用を検討することができます。これにより、ポップアップブロッカーの潜在的な問題を回避できます。

0

拡張ライブラリ、ダイアログコントロールの<xe:dialog>タグを使用して、ダイアログコンテンツコントロールを含めることもできます。ダイアログボックスを開くときにコンテンツを読み込むことができます。ダイアログは、XSP.openDialog(...)を使用して開始されます。

メガバイトのレポートは次のとおりです。ドキュメントのリッチテキストフィールドでは?

+0

SSJSによってレポートが生成されます。このテキストを空白のウィンドウに表示します。プレーンテキストのように – VladP

関連する問題