The reference HTML and code in this article has been corrected (20th April 2009).

In life, just because you can do something does not mean you should do something. Or as Spiderman said, "with great power comes great responsibility".

When we code in the browser we have access to the full document object model. In a page of HTML rendered by Sage CRM we can not only refer to each of the structures created but we can alter their properties. Many of the articles that get written discuss this very point.

The structure of the screen created by Sage CRM is frames based. If you have done any exploring of the product you may well have discovered that there are hidden frames in the page. If you right click on a page and view source you will see the structure.

A simplified version of the structure looks like this

<FRAMESET COLS="105,*">
<FRAMESET ROWS="74,0,24,*,0" >
<FRAME NAME="EWARE_LOGO">
<FRAME NAME="EWARE_RECENT">
<FRAME NAME="EWARE_HISTORY">
<FRAME NAME="EWARE_MENU">
<FRAME NAME="EWARE_CTIBUTTONS">
</FRAMESET>
<FRAMESET ROWS="70,*,0,0,0" >
<FRAME NAME="EWARE_TOP">
<FRAME NAME="EWARE_MID">
<FRAME NAME="EWARE_HIDDEN" >
<FRAME NAME="EWARE_CTIOBJECT" >
<FRAME NAME="EWARE_UPDATE">
</FRAMESET>
</FRAMESET>

Most of the frame names are self explanatory. Some of the frames are hidden and some become visible because of different system actions that are called. The hidden frames are used to perform different tasks. They may be used for CTI and session "keep alive" actions for example. The CTI frames are usually hidden away but become visible when needed.

It is tempting to think that we may be able to control these frames ourselves, perhaps making the hidden frames visible or splitting the screen and frameset.

Note

It is not supportable if you try manipulating these frames yourself. You must NOT alter the frame structure of CRM.
The frames exist within the DOM and when referencing the functions and objects created in the browser code of Sage CRM may address these by their expected ordinal reference. For example in the system generated interface you may find code like this:

parent.frames[3].WriteToFrame(5,"TOPBODY VLINK=NAVY LINK=NAVY","<TABLE WIDTH=100%><TR><TD CLASS=TOPHEADING WIDTH=60><IMG SRC='/crm/img/Icons/Company.gif' BORDER=0 ALIGN=MIDDLE></td><td CLASS=TOPHEADING>Other text......</td></tr></table>");

If you alter the framestructure of Sage CRM then you will run the big risk of breaking the interface.

You can add iframe tags into pages and that is a technique that is used through out CRM and will not cause difficulties for you.