新しいバージョンの新しいレンダリングエンジンにより、crm 2011をcrm 2016 onpremiseにアップグレードしています。そのため、多くのJavaScriptコードが機能しません。最近、iframeでiframeの内容にアクセスできないという問題がJQueryを使用して発生しています。crm 2016フォームのIframeコントロールにアクセスできない
var ccControl = $("#WebResource_ccCheckList").contents().find(":checkbox"); if(ccControl) { //Business Logic }
私がアクセスしたい要素が 'myChckboxId' のidを持つHTML入力です: あなたが同意しますか? ReferenceErrorを取得しています: '$'は未定義ですが、$ referenceはIFrameでスクリプト化されていても問題ありません。 私のために修正しても機能しない回避策を試してみました。
1)次のスクリプトをonloadに置きます。
if (typeof($) === 'undefined'){ var script = document.createElement('script'); script.src = 'ajax.googleapis.com/.../jquery.min.js'; script.async = false; document.head.appendChild(script);}
2) $(Xrm.Page.ui.controls.get('WebResource_ccCheckList').getObject()).contents().find(':checkbox').val();
Xrm.Page.ui.controls.get( 'WebResource_ccCheckList')。のgetObject()は私OBJを与えなく$で動作しています。ヌル取得
3) Xrm.Page.ui.controls.get("WebResource_ccCheckList").getObject().contentWindow.document.getElementById('myChckboxId');
問題を解決するための任意の代替アプローチを提案してください。 jQueryのは、まだそこにある
必須警告:DOMを操作することは良いアイデアになることはありません(更新ごとにコードを最初から書き直すことが必要になる場合があります) – Alex