2011-10-27 13 views
0

私は、Microsoft CRM 2011のIFrameに問題があります。HTMLコードを生成してIFrameに書き込もうとしています。私はCRM開発には全く新しいので、あなたが私を解決策に導くことを願っています。MS Crm 2011 javascript Iframe関数

JavaScriptを使用してHTMLコンテンツ(IframeHTML)を生成した後、そのコンテンツをIFrameに書き込んでから、フォーム全体をリロードします。私は私の最後のコマンドに到達するまで、すべてがスクリプトがフォームの読み込み時に実行されますが、それは

アクセスがで

を拒否されたことを私に警告を与えている

var control = document.getElementById("IFRAME_name"); 
control.contentWindow.document.open(); 
control.contentWindow.document.write(IframeHTML); 
control.contentWindow.document.close(); 
control.location.reload(true); 

正常に動作しています終わり。

私は最初の行を交換する場合:

var control = Xrm.Page.ui.controls.get("IFRAME_name"); 

それは私に

文書を告げるがサポートされていません。

私はこの問題が何であるかを認識しているかどうか分かりませんので、助けがよかったです。

+0

ええ、Xrm.Pageを使用してIFRAMEを取得することはできません。そのため、コードの最初のブロックがよく見えます。私はCRM 2011で非常に似たようなコードを使用しています(下記参照)、うまくいきますので、あなたのエラーは他の何かに起因するものと推測しています。 var iFrame = document.getElementById( "IFRAME_name"); var doc = iFrame.contentDocument; if(doc == undefined || doc == null){ doc = iFrame.contentWindow.document; } doc.open(); doc.write(IframeHTML); doc.close(); –

+0

実際には、control.location.reload(true)行に違いがある可能性があります。何らかの理由でその行のコードが必要ですか? –

+0

あなたはこれを理解したことがありますか? – Polshgiant

答えて

0

IFRAMEプロパティでクロスフレームスクリプティングを有効にする必要があります。

あなたはそれをしましたか?

Xrm.Pageコールについて、あなたはこれはIFRAMEを取得するためのサポートされている方法であるので、あなたはそれを使用する必要があります

var control = Xrm.Page.ui.controls.get("IFRAME_name").getObject(); 

を使用してIFRAMEを得ることができます。

+0

はい私はそれをしました...私が使用しているコマンドは正しいですか? – user1016077

+0

IFRAMEにドキュメントをロードしましたか?生成されたコードはどこに置いておきたいですか? –

+0

私はiframeがあるフォームからonloadをいくつかのHTMLコンテンツを作成し、それをIframe自体に入れています。それは単なるHTMLです。それはCrm 4では正常に機能しましたが、Crm 2011ではうまく機能しませんでした。私は、Crm 4とCrm 2011の間のjs構文の違いが原因であるかどうかわかりません... Iframeに外部ドキュメントをロードせず、Iframeにコンテンツを表示したいだけです... – user1016077

関連する問題