1 (изменено: Rumata, 2010-04-08 03:01:48)

Тема: JScript: динамическая смена некоторых свойств окна HTA-приложения

Создано по мотивам поста #15.

wisgest предложил замечательное и элегантное решение смены свойств окна HTML-приложения. Это решение актуально, для тех случаев, когда необходимо динамически менять некоторые свойства окна. В настоящее время это решение опробовано и работает только для смены значка приложения (в вернем левом углу окна и в панели задач).

Так как получить доступ к объекту DOM возможно как по имени тега,  так и по его атрибуту id, в коде представлены оба способа - используется первый, второй - закомментирован (ищите строки помеченные //*** - 3 строки).

<html>
<head id="HTMLHeadElement">
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<title>Динамическая смена значка HTA приложения</title>

<HTA:APPLICATION 
    id="oHTA" 
    icon="cmd.exe" 
    />

<script language='JavaScript'>

//*** Ссылка на тег HTA:APPLICATION по id
//var oHTA = document.getElementById('oHTA');

//*** Ссылка на тег HTA:APPLICATION по имени тега
var oHTA = document.getElementsByTagName('application')[0];

// Запомнить текущее состояние иконки
var icon = oHTA.icon;

// Флаг состяния нового значка
var newIcon = false;

// ОБработчик события - по щелчку внутри документа будет изменена иконка приложения
document.onclick=function()
{
    // Удалить текущий тег из дерева объектов
    oHTA.removeNode();

    // Изменить иконку и переключить триггер
    if ( newIcon ) {
        // Был новый значок - вернуть старый
        newIcon = false;
        oHTA.icon = icon;
    } else {
        // Установить новый значок
        newIcon = true;
        oHTA.icon = 'explorer.exe';
    }

    //*** Добавить обновленный тег в дерево объектов
    //document.getElementById('HTMLHeadElement').appendChild(oHTA);
    document.getElementsByTagName('head')[0].appendChild(oHTA);
};
</script>
</head>

<body>
<p>При щелчке по странице изменится значок окна.</p>
<p>Старый значок - символ командного интерпретатора</p>
<p>Новый значок - символ Проводника</p>
</body>
</html>
( 2 * b ) || ! ( 2 * b )