0

私は大きな古典的なメモアプリケーションでフォームを XPage していますが、良い UI を表示するフォームとの対話を終了する方法を見つけるのに苦労しています。これが私のシナリオです:

1) ビューから親ドキュメント (クラシック ノート) が開かれます。2) 親ドキュメントのボタンは、notes:/// リンクを使用して XPiNC で子ドキュメントを開きます。3) 子ドキュメント XPage のキャンセル ボタン ......

私は次のアプローチを試しました:

a) window.close()を使用する 私はこれについて多くのグーグル検索を行いましたが、さまざまなアプローチがうまくいかないようです。window.close() は、window.open で開いたウィンドウから呼び出すと動作するはずなので、window.open("closeMe.xsp", "_self") を試して、これでウィンドウが表示されるかどうかを確認しました。これは、onClientLoad クライアント側イベントで window.close() を使用して xpage によって閉じることができます。そこには運がありません。次の質問は提案を行いますが、解決策は提供しません (サードパーティ製品を除く)

Xpage でウィンドウを閉じるにはどうすればよいですか? Notes クライアントで xpages を閉じるには? CSJS window.close を使用していますが、機能していません

b) 親文書 へのリダイレクト 私の次のアイデアは、親文書にリダイレクトすることでした。親文書はすでにノーツ クライアントで開かれています。ただし、(facesContext.getExternalContext().redirect("Notes:///url" を使用して) リダイレクトすると、実際には親ドキュメントにジャンプしますが、XPage があったタブに空白のウィンドウが開いたままになることがわかりました。 .

次に試したのは、元の呼び出し元の LotusScript で親を閉じてから、キャンセル ボタンで親にリダイレクトすることでした。これも機能します。親ドキュメントにアクセスできますが、エスケープ キーを押すか、親ドキュメントのタブを閉じると、再び空のウィンドウが表示されます。

何か案は?埋め込まれたビューが新しい子ドキュメントで更新されることを期待できるので、新しく開いた親ドキュメントに戻ることができるという考えが気に入っていますが、現時点では機能するものは何でも取ります。:)

乾杯、

ブレンダン

4

2 に答える 2

1

あなたは岩と固い場所の間に立ち往生しています。XPiNC と従来の Notes は、そう簡単には混ざりません。しかし、希望はあります。複合アプリケーション Wikiにアクセスしてください。そこでは、ドキュメントの代わりにコンポジットを開くことができることがわかります。これにより、コンポジット内にタブやものを含めることができます。

これは、従来のアプリケーションと XPage (プロパティー・ブローカーを使用したパブリッシュ/サブスクライブ) がデータを交換できる方法でもあります。コメントも必ず読んでください。Karsten にはさらに良いリンクがあります。

あなたがまさにやりたいことの実用的な例はありませんが、コンポジットはあなたが持っている最善の策のように感じます.

于 2012-06-27T04:44:36.677 に答える
0

私は部分的な解決策を見つけました.Javaはあなたの友達です. ボタンでも機能し、リンクでも機能するはずです。唯一の問題は、onClose などのイベントから呼び出されたときに、現在の xpage がフォーカスを失い、現在のページが開いたままになることです。送信キーをエミュレートしようとすると、ESC キーが押されます。ボタンインから正常に動作します。ボタンのクリックイベント

<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:var robot:java.awt.Robot= new java.awt.Robot;var event:java.awt.event.KeyEvent=java.awt.event.KeyEvent;

robot.keyPress(event.VK_ESCAPE); robot.keyRelease(event.VK_ESCAPE); enter code here}]]>

    </xp:eventHandler>
</xp:button>
于 2013-02-19T03:05:49.387 に答える