Donna Edwards, CRM forums co-owner and established MVP, will often bounce threads from the “main” CRM forum into the CRM Development forum, which I comfortably call home, whenever the question is a particularly obscure one and hasn’t received an answer from the cabal of experts usually found in the “main” CRM forum. I delight in any opportunity to take her “escalations” as a personal challenge. Today, I found it in this thread.
I encountered a similar behavior when working on the Embedded Advanced Find View project, and guessed that the same situational elements must be present here. Not wanting to be wrong, I pulled out the IE Developer Tools (side-note: Microsoft, this is seriously the coolest feature of IE 8), and confirmed it.
So, what explains the behavior? The answer is simple: AJAX. See, CRM’s UI scripts don’t simply pass the Url value into the src attribute of a frame (or Iframe); how would it achieve the “Loading…” message, if it did? The trick, is that CRM scripts overwrite the contents of the dynamic content frame with the HTML necessary to display that message, and then instantiates a new, ActiveX [FreeThreaded]DOMDocument object behind-the-scenes to load the target URI. When the status of the DOM document object becomes complete, the dynamic content frame’s DOM is overridden with the results.