<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FGUI_Components%2FBanner</id>
		<title>JavaScript DHTML/GUI Components/Banner - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wbex.ru/index.php?action=history&amp;feed=atom&amp;title=JavaScript_DHTML%2FGUI_Components%2FBanner"/>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/GUI_Components/Banner&amp;action=history"/>
		<updated>2026-04-05T02:57:06Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/GUI_Components/Banner&amp;diff=4146&amp;oldid=prev</id>
		<title> в 10:00, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/GUI_Components/Banner&amp;diff=4146&amp;oldid=prev"/>
				<updated>2010-05-26T10:00:42Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 10:00, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://wbex.ru/index.php?title=JavaScript_DHTML/GUI_Components/Banner&amp;diff=4147&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://wbex.ru/index.php?title=JavaScript_DHTML/GUI_Components/Banner&amp;diff=4147&amp;oldid=prev"/>
				<updated>2010-05-26T07:44:11Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Banner in Javascript==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ***********************************************************&lt;br /&gt;
Example 4-4&lt;br /&gt;
&amp;quot;Dynamic HTML:The Definitive Reference&amp;quot;&lt;br /&gt;
2nd Edition&lt;br /&gt;
by Danny Goodman&lt;br /&gt;
Published by O&amp;quot;Reilly &amp;amp; Associates  &lt;br /&gt;
ISBN 0-596-00316-1&lt;br /&gt;
http://www.oreilly.ru&lt;br /&gt;
Copyright 2002 Danny Goodman.  All Rights Reserved.&lt;br /&gt;
************************************************************ --&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* ***********************************************************&lt;br /&gt;
Example 4-3 (DHTMLapi.js)&lt;br /&gt;
&amp;quot;Dynamic HTML:The Definitive Reference&amp;quot;&lt;br /&gt;
2nd Edition&lt;br /&gt;
by Danny Goodman&lt;br /&gt;
Published by O&amp;quot;Reilly &amp;amp; Associates  &lt;br /&gt;
ISBN 1-56592-494-0&lt;br /&gt;
http://www.oreilly.ru&lt;br /&gt;
Copyright 2002 Danny Goodman.  All Rights Reserved.&lt;br /&gt;
************************************************************ */&lt;br /&gt;
// DHTMLapi.js custom API for cross-platform&lt;br /&gt;
// object positioning by Danny Goodman (http://www.dannyg.ru).&lt;br /&gt;
// Release 2.0. Supports NN4, IE, and W3C DOMs.&lt;br /&gt;
// Global variables&lt;br /&gt;
var isCSS, isW3C, isIE4, isNN4;&lt;br /&gt;
// initialize upon load to let all browsers establish content objects&lt;br /&gt;
function initDHTMLAPI() {&lt;br /&gt;
    if (document.images) {&lt;br /&gt;
        isCSS = (document.body &amp;amp;&amp;amp; document.body.style) ? true : false;&lt;br /&gt;
        isW3C = (isCSS &amp;amp;&amp;amp; document.getElementById) ? true : false;&lt;br /&gt;
        isIE4 = (isCSS &amp;amp;&amp;amp; document.all) ? true : false;&lt;br /&gt;
        isNN4 = (document.layers) ? true : false;&lt;br /&gt;
        isIE6CSS = (document.rupatMode &amp;amp;&amp;amp; document.rupatMode.indexOf(&amp;quot;CSS1&amp;quot;) &amp;gt;= 0) ? true : false;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// set event handler to initialize API&lt;br /&gt;
window.onload = initDHTMLAPI;&lt;br /&gt;
// Seek nested NN4 layer from string name&lt;br /&gt;
function seekLayer(doc, name) {&lt;br /&gt;
    var theObj;&lt;br /&gt;
    for (var i = 0; i &amp;lt; doc.layers.length; i++) {&lt;br /&gt;
        if (doc.layers[i].name == name) {&lt;br /&gt;
            theObj = doc.layers[i];&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
        // dive into nested layers if necessary&lt;br /&gt;
        if (doc.layers[i].document.layers.length &amp;gt; 0) {&lt;br /&gt;
            theObj = seekLayer(document.layers[i].document, name);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    return theObj;&lt;br /&gt;
}&lt;br /&gt;
// Convert object name string or object reference&lt;br /&gt;
// into a valid element object reference&lt;br /&gt;
function getRawObject(obj) {&lt;br /&gt;
    var theObj;&lt;br /&gt;
    if (typeof obj == &amp;quot;string&amp;quot;) {&lt;br /&gt;
        if (isW3C) {&lt;br /&gt;
            theObj = document.getElementById(obj);&lt;br /&gt;
        } else if (isIE4) {&lt;br /&gt;
            theObj = document.all(obj);&lt;br /&gt;
        } else if (isNN4) {&lt;br /&gt;
            theObj = seekLayer(document, obj);&lt;br /&gt;
        }&lt;br /&gt;
    } else {&lt;br /&gt;
        // pass through object reference&lt;br /&gt;
        theObj = obj;&lt;br /&gt;
    }&lt;br /&gt;
    return theObj;&lt;br /&gt;
}&lt;br /&gt;
// Convert object name string or object reference&lt;br /&gt;
// into a valid style (or NN4 layer) reference&lt;br /&gt;
function getObject(obj) {&lt;br /&gt;
    var theObj = getRawObject(obj);&lt;br /&gt;
    if (theObj &amp;amp;&amp;amp; isCSS) {&lt;br /&gt;
        theObj = theObj.style;&lt;br /&gt;
    }&lt;br /&gt;
    return theObj;&lt;br /&gt;
}&lt;br /&gt;
// Position an object at a specific pixel coordinate&lt;br /&gt;
function shiftTo(obj, x, y) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        if (isCSS) {&lt;br /&gt;
            // equalize incorrect numeric value type&lt;br /&gt;
            var units = (typeof theObj.left == &amp;quot;string&amp;quot;) ? &amp;quot;px&amp;quot; : 0 &lt;br /&gt;
            theObj.left = x + units;&lt;br /&gt;
            theObj.top = y + units;&lt;br /&gt;
        } else if (isNN4) {&lt;br /&gt;
            theObj.moveTo(x,y)&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Move an object by x and/or y pixels&lt;br /&gt;
function shiftBy(obj, deltaX, deltaY) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        if (isCSS) {&lt;br /&gt;
            // equalize incorrect numeric value type&lt;br /&gt;
            var units = (typeof theObj.left == &amp;quot;string&amp;quot;) ? &amp;quot;px&amp;quot; : 0 &lt;br /&gt;
            theObj.left = getObjectLeft(obj) + deltaX + units;&lt;br /&gt;
            theObj.top = getObjectTop(obj) + deltaY + units;&lt;br /&gt;
        } else if (isNN4) {&lt;br /&gt;
            theObj.moveBy(deltaX, deltaY);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Set the z-order of an object&lt;br /&gt;
function setZIndex(obj, zOrder) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        theObj.zIndex = zOrder;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Set the background color of an object&lt;br /&gt;
function setBGColor(obj, color) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        if (isNN4) {&lt;br /&gt;
            theObj.bgColor = color;&lt;br /&gt;
        } else if (isCSS) {&lt;br /&gt;
            theObj.backgroundColor = color;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Set the visibility of an object to visible&lt;br /&gt;
function show(obj) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        theObj.visibility = &amp;quot;visible&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Set the visibility of an object to hidden&lt;br /&gt;
function hide(obj) {&lt;br /&gt;
    var theObj = getObject(obj);&lt;br /&gt;
    if (theObj) {&lt;br /&gt;
        theObj.visibility = &amp;quot;hidden&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
// Retrieve the x coordinate of a positionable object&lt;br /&gt;
function getObjectLeft(obj)  {&lt;br /&gt;
    var elem = getRawObject(obj);&lt;br /&gt;
    var result = 0;&lt;br /&gt;
    if (document.defaultView) {&lt;br /&gt;
        var style = document.defaultView;&lt;br /&gt;
        var cssDecl = style.getComputedStyle(elem, &amp;quot;&amp;quot;);&lt;br /&gt;
        result = cssDecl.getPropertyValue(&amp;quot;left&amp;quot;);&lt;br /&gt;
    } else if (elem.currentStyle) {&lt;br /&gt;
        result = elem.currentStyle.left;&lt;br /&gt;
    } else if (elem.style) {&lt;br /&gt;
        result = elem.style.left;&lt;br /&gt;
    } else if (isNN4) {&lt;br /&gt;
        result = elem.left;&lt;br /&gt;
    }&lt;br /&gt;
    return parseInt(result);&lt;br /&gt;
}&lt;br /&gt;
// Retrieve the y coordinate of a positionable object&lt;br /&gt;
function getObjectTop(obj)  {&lt;br /&gt;
    var elem = getRawObject(obj);&lt;br /&gt;
    var result = 0;&lt;br /&gt;
    if (document.defaultView) {&lt;br /&gt;
        var style = document.defaultView;&lt;br /&gt;
        var cssDecl = style.getComputedStyle(elem, &amp;quot;&amp;quot;);&lt;br /&gt;
        result = cssDecl.getPropertyValue(&amp;quot;top&amp;quot;);&lt;br /&gt;
    } else if (elem.currentStyle) {&lt;br /&gt;
        result = elem.currentStyle.top;&lt;br /&gt;
    } else if (elem.style) {&lt;br /&gt;
        result = elem.style.top;&lt;br /&gt;
    } else if (isNN4) {&lt;br /&gt;
        result = elem.top;&lt;br /&gt;
    }&lt;br /&gt;
    return parseInt(result);&lt;br /&gt;
}&lt;br /&gt;
// Retrieve the rendered width of an element&lt;br /&gt;
function getObjectWidth(obj)  {&lt;br /&gt;
    var elem = getRawObject(obj);&lt;br /&gt;
    var result = 0;&lt;br /&gt;
    if (elem.offsetWidth) {&lt;br /&gt;
        result = elem.offsetWidth;&lt;br /&gt;
    } else if (elem.clip &amp;amp;&amp;amp; elem.clip.width) {&lt;br /&gt;
        result = elem.clip.width;&lt;br /&gt;
    } else if (elem.style &amp;amp;&amp;amp; elem.style.pixelWidth) {&lt;br /&gt;
        result = elem.style.pixelWidth;&lt;br /&gt;
    }&lt;br /&gt;
    return parseInt(result);&lt;br /&gt;
}&lt;br /&gt;
// Retrieve the rendered height of an element&lt;br /&gt;
function getObjectHeight(obj)  {&lt;br /&gt;
    var elem = getRawObject(obj);&lt;br /&gt;
    var result = 0;&lt;br /&gt;
    if (elem.offsetHeight) {&lt;br /&gt;
        result = elem.offsetHeight;&lt;br /&gt;
    } else if (elem.clip &amp;amp;&amp;amp; elem.clip.height) {&lt;br /&gt;
        result = elem.clip.height;&lt;br /&gt;
    } else if (elem.style &amp;amp;&amp;amp; elem.style.pixelHeight) {&lt;br /&gt;
        result = elem.style.pixelHeight;&lt;br /&gt;
    }&lt;br /&gt;
    return parseInt(result);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Return the available content width space in browser window&lt;br /&gt;
function getInsideWindowWidth() {&lt;br /&gt;
    if (window.innerWidth) {&lt;br /&gt;
        return window.innerWidth;&lt;br /&gt;
    } else if (isIE6CSS) {&lt;br /&gt;
        // measure the html element&amp;quot;s clientWidth&lt;br /&gt;
        return document.body.parentElement.clientWidth&lt;br /&gt;
    } else if (document.body &amp;amp;&amp;amp; document.body.clientWidth) {&lt;br /&gt;
        return document.body.clientWidth;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
// Return the available content height space in browser window&lt;br /&gt;
function getInsideWindowHeight() {&lt;br /&gt;
    if (window.innerHeight) {&lt;br /&gt;
        return window.innerHeight;&lt;br /&gt;
    } else if (isIE6CSS) {&lt;br /&gt;
        // measure the html element&amp;quot;s clientHeight&lt;br /&gt;
        return document.body.parentElement.clientHeight&lt;br /&gt;
    } else if (document.body &amp;amp;&amp;amp; document.body.clientHeight) {&lt;br /&gt;
        return document.body.clientHeight;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Global &amp;quot;corrector&amp;quot; for IE/Mac et al., but doesn&amp;quot;t hurt others&lt;br /&gt;
var fudgeFactor = {top:-1, left:-1};&lt;br /&gt;
// Center a positionable element whose name is passed as &lt;br /&gt;
// a parameter in the current window/frame, and show it&lt;br /&gt;
function centerIt(layerName) {&lt;br /&gt;
    // &amp;quot;obj&amp;quot; is the positionable object&lt;br /&gt;
    var obj = getRawObject(layerName);&lt;br /&gt;
    // set fudgeFactor values only first time&lt;br /&gt;
    if (fudgeFactor.top == -1) {&lt;br /&gt;
        if ((typeof obj.offsetTop == &amp;quot;number&amp;quot;) &amp;amp;&amp;amp; obj.offsetTop &amp;gt; 0) {&lt;br /&gt;
            fudgeFactor.top = obj.offsetTop;&lt;br /&gt;
            fudgeFactor.left = obj.offsetLeft;&lt;br /&gt;
        } else {&lt;br /&gt;
            fudgeFactor.top = 0;&lt;br /&gt;
            fudgeFactor.left = 0;&lt;br /&gt;
        }&lt;br /&gt;
        if (obj.offsetWidth &amp;amp;&amp;amp; obj.scrollWidth) {&lt;br /&gt;
            if (obj.offsetWidth != obj.scrollWidth) {&lt;br /&gt;
                obj.style.width = obj.scrollWidth;    &lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    var x = Math.round((getInsideWindowWidth()/2) - (getObjectWidth(obj)/2));&lt;br /&gt;
    var y = Math.round((getInsideWindowHeight()/2) - (getObjectHeight(obj)/2));&lt;br /&gt;
    shiftTo(obj, x - fudgeFactor.left, y - fudgeFactor.top);&lt;br /&gt;
    show(obj);&lt;br /&gt;
}&lt;br /&gt;
// Special handling for CSS-P redraw bug in Navigator 4&lt;br /&gt;
function handleResize() {&lt;br /&gt;
    if (isNN4) {&lt;br /&gt;
        // causes extra re-draw, but gotta do it to get banner object color drawn&lt;br /&gt;
        location.reload();&lt;br /&gt;
    } else {&lt;br /&gt;
        centerIt(&amp;quot;banner&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body onLoad=&amp;quot;initDHTMLAPI(); centerIt(&amp;quot;banner&amp;quot;)&amp;quot; onResize=&amp;quot;handleResize()&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;banner&amp;quot; style=&amp;quot;position:absolute; visibility:hidden; left:0; top:0;&lt;br /&gt;
 background-color:yellow; font-size:36pt; color:red&amp;quot;&amp;gt;&lt;br /&gt;
Congratulations!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>