--- id: "203685ed-9eb2-45c5-bb04-dfde465352d0" name: "Connect Page Structure" micro_summary: "Maps Connect's parent shell and nested question iframe, describing where interactive content and answer dropdowns appear." status: "not_examined" see_also: [{"target": "09721f1c-2a81-4d26-a2e7-ba9f176f2b74", "reason": "Reusable template for extracting content from nested iframes via parent-page JS — used by both Connect and SIMbook"}] scope: "McGraw-Hill Connect page layout and iframe nesting. How question content is loaded inside the Assessment Tool iframe, not on the parent page." --- ## McGraw-Hill Connect — Page Structure Connect loads as a two-layer page: the parent Ember.js shell (nav, progress bar, buttons) and an iframe containing the actual question content. ## The Iframe Nesting The assignment page (e.g., `ezto.mheducation.com/ext/map/index.html`) contains an iframe: ``` Parent page (ember app) → iframe[src="/ext/common/accountingtool/1.0/atinit.html?Q_"] ``` The iframe `name` is dynamically generated: `Q_13252744676035422_ansb`. The iframe `src` always contains the question ID and ends with `_ansb`. ## Where Question Content Lives The actual table, dropdowns, and question text are rendered INSIDE the iframe by a jQuery Sheet tool (`jSheet`). The parent page shows only: - Header (Chapter X Homework, Save & Exit, Submit) - Sidebar (eBook, Print, References buttons) - Progress bar (Question X of Y) - "Required:" text and brief question description Everything interactive is in the iframe. Use `contentWindow.document` from parent-page JS to extract it (see [[Iframe Content Extraction|]] under SIMbook Player Skills). ## Dropdown Structure Each answer cell in the iframe has: - `role="combobox"` with `aria-expanded`, `aria-haspopup="listbox"`, `dropdownid="0"`, `dropdowntype="dropDown"` - Options listed in a `