<html> <script type="text/javascript" src="../dojo.js"></script> <script type="text/javascript"> dojo.require('dojo.html.common'); dojo.require('dojo.html.style'); dojo.require("dojo.event"); dojo.require("dojo.lang.declare"); function $ (id) { return dojo.byId(id); } function makeGreen (nodes) { for (var i = 0; node = nodes[i]; i++) { node.style.color = "green"; } } var contentWin; dojo.addOnLoad(function(){ contentWin = $("embed").contentWindow; dojo.event.connect($("updateScroll"), "onclick", updateScroll); dojo.event.connect($("updateScrollOffset"), "onclick", updateScrollOffset); dojo.event.connect($("updateViewport"), "onclick", updateViewport); dojo.event.connect($("init"), "onclick", init); }); function updateScroll() { dojo.withGlobal(contentWin, function() { var scroll = dojo.html.getScroll(); $("scrollTop").firstChild.nodeValue = scroll.top; $("scrollLeft").firstChild.nodeValue = scroll.left; }); } function updateScrollOffset() { dojo.withGlobal(contentWin, function() { var offset = dojo.html.getScroll().offset; $("scrollOffsetX").firstChild.nodeValue = offset.x; $("scrollOffsetY").firstChild.nodeValue = offset.y; }); } //use object context to invoke a member function of an object var ViewPort = {}; ViewPort.update = function(msg){ var viewport = dojo.html.getViewport(); $("viewportWidth").firstChild.nodeValue = viewport.width; $("viewportHeight").firstChild.nodeValue = viewport.height; $("viewportSize").firstChild.nodeValue = viewport + msg; } function updateViewport() { dojo.withGlobal(contentWin, "update", ViewPort, " updateViewport is clicked" ); } function init() { makeGreen(dojo.html.getElementsByClass("foo1 bar1")); makeGreen(dojo.html.getElementsByClass("foo2", null, null, dojo.html.classMatchType.ContainsAll)); makeGreen(dojo.html.getElementsByClass("foo3 bar3", null, null, dojo.html.classMatchType.IsOnly)); makeGreen(dojo.html.getElementsByClass("foo4", null, null, dojo.html.classMatchType.IsOnly)); } //use around to wrap a function to work in the embed window dojo.event.connect("around", this, "init", this, "withEmbed"); function withEmbed(mi) { dojo.withGlobal(contentWin, function() { mi.proceed(); }); } </script> <head> </head> <body> <p>This text is before the iframe</p> <iframe id="embed" src="test_html_content.html" width="50%" height="200px"></iframe> <p><input type="button" id="init" value="Init green text"> <input type="button" id="updateScroll" value="Update Scroll Values"> <input type="button" id="updateScrollOffset" value="Update Scroll Values"> <input type="button" id="updateViewport" value="Update Size Values"></p> <p style="height: 700px"></p> </body> </html>