CRM ポップアップを取得して開始ウィンドウを更新する
-
03-07-2019 - |
質問
window.open(...) を使用して、イントラネット ページから Microsoft CRM 4.0 ウィンドウをロードしています。
ウィンドウが閉じるとき、ウィンドウを開いたページ上のボタンをプログラムで押す必要があります。これを独自のフォームから行うには、ボタン (名前はクエリ文字列で渡されます) を取得し、JavaScript でその click メソッドを実行します。
イントラネット上の他の Web ベース システムと同じように、CRM ページを含む iframe を使用して独自のウィンドウを開いてみることができると考えました。ページ内で、ページの onunload イベントのボタンをクリックできます。ただし、これはほとんどのシステムで機能しますが、CRM では 2 つの問題が発生します。
- ウィンドウを開いて閉じると、CRM エラーが発生します。
- CRM ウィンドウから [保存して閉じる] ボタンを押すと、保存されますが閉じません。
これに対する解決策はありますか?
解決
基本的な JavaScript window.opener 呼び出しを使用するなどのことを行うことができます。
ページ 1 では CRM ウィンドウが開きます。その CRM ウィンドウの OnSave で、次のようなものを呼び出します。
if(window.opener.DoSomeFunction != null)
{
window.opener.DoSomeFunction;
}
ここで、DoSomeFunction() はページ 1 で定義された JavaScript 関数です。PageMethod または __doPostBack() 呼び出しを使用できます。MS CRM 内でこれを試す機会はありませんでしたが、理論的には、このアプローチは機能する可能性があります。
JavaScript window.opener のリファレンス:
他のヒント
クロスサイトスクリプティングの防止が原因でエラーが発生していませんか?イントラネットアプリとCRMが同じサーバー上にない限り、それらの間でデータをやり取りするのは面倒です。
あなたが何を達成したいのか正確に理解していない場合は申し訳ありませんが、説明を完全に視覚化することはできません。たぶん簡単なスケッチ/図面が役立つでしょうか?
現時点ではDynamics CRMを使用していますが、さまざまな問題に遭遇し、多くの回避策を考案する必要があったため、喜んでお手伝いします。喜んで共有します。