1

これは奇妙で、私はちょっとばかげていると感じます。

CRM でF12、黄色の警告セクションが id Notifications (およびNotification0Notification1などと呼ばれるサブDIV) を持つ DIV であることを確認しました。

しかし、私が行ったときdocument.getElementById("Notifications")、私はしゃがみました。なんてこと?!

また、私が行ったときdocument.write("")、何も変わりませんでした。Cr と FF では反応しましたが、IE では反応しませんでした。私は正気ですか?

編集:

ここに画像の説明を入力

上記はタイプミスです。実行しようとすると:

document.getElementById("crmNotifications")

私はなだを得ます, どちらも. 提案?

4

3 に答える 3

4

あなたは正気ではありませんし、CRM とブラウザにも問題はありません :)

ブラウザのコンソールから JavaScript を実行している場合は、windowページ全体のコンテキストにいます。ただし、CRM フォームのコンテンツはcontentIFrameiframe 内にあります。IFrame は実際には個別のページです。F12 開発者ツールでこの iframe が指すリンクを、必要な他のリンクに編集することもできます。src属性を次のように変更してみてくださいhttp://www.bing.com。CRM ウィンドウ内に Bing ホームページが表示されます (リボンのみが残ります)。

<iframe title="This is IFrame" id="contentIFrame" src="http://www.bing.com" 
        style="width: 100%; height: 100%; border-top-style: none; 
               border-right-style: none; border-bottom-style: none; 
               border-left-style: none; display: inline;" >

crmNotificationsコンソールから JavaScript を実行すると、親ウィンドウのコンテキストにいるため、DOM 要素を取得できないのはそのためです。指定window.frames[0]すると、ページの最初の IFrame (実際にはこれは 1 つだけです) が表示されますcrmNotifications

CRM カスタマイズによって追加したカスタム スクリプトを実行している場合、それらは内部フォーム ページ (IFrame がポイントするページ) にリンクされていcrmNotificationsます。これが、既に「コンテンツ」ページ コンテキストにいるため、これらのスクリプトから直接取得できる理由です。

于 2013-03-28T08:18:58.430 に答える
3

あなたはおそらく少し正気ではありません:D私がよく見れば、通知はIDではなくクラスです。ID は crmNotifications です。私は通知を書いており、ブックマークにこのリンクがあります。

于 2013-03-27T15:36:51.703 に答える
1

試す

frames[0].document.getElementById('crmNotifications')

frames[0]何らかの理由で IE ではビットが必要です。Xrmオブジェクトを使いたい場合も同様です。

于 2013-03-27T19:10:42.120 に答える