2.2.5. HTML фрейм

Классы фреймов:

  • TbtkHTMLViewerFrame
  • TbtkLookupHTMLViewerFrame

2.2.5.1. Общие положения

HTML фрейм предназначен для отображения и/или редактирования HTML страниц. Редактирование может происходить как в визуальном редакторе так и в редакторе HTML-кода.

Для использования подгружаемых скриптов необходимо добавлять тег совместимости браузера <meta http-equiv="X-UA-Compatible" content="IE=10"/> или <meta http-equiv="X-UA-Compatible" content="IE=edge"/>. Без этого тега он не подгружает и не выполняет скрипты вида <script src="".

2.2.5.2. Отображение flash-файлов

Существует возможность отображения flash-файлов хранящихся в базе, для этого перед отображением HTML-страницы к относительному пути до объектов flash дописывается путь до исполняемого файла Global.exe. Дополняется только относительный путь, то есть путь который не содержит таких последовательностей как :** или **:/. О помещении в эту папку flash-файла разработчик должен позаботится самостоятельно.

2.2.5.2.1. Пример

Если клиент global.exe был запущен из папки C:DepotDevelopment_Global_LastBuildmain, то HTML-код

<span class="sc2"><<span class="kw2">html</span>></span>
   <span class="sc2"><<span class="kw2">body</span>></span>
     <span class="sc2"><<span class="kw2">object</span> <span class="kw3">classid</span><span class="sy0">=</span><span class="st0">"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"</span> <span class="kw3">codebase</span><span class="sy0">=</span><span class="st0">"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"test1"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"movie"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"17.swf"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"quality"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"high"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"bgcolor"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"#ffffff"</span>></span>
     <span class="sc2"><<span class="sy0">/</span><span class="kw2">object</span>></span>
     <span class="sc2"><<span class="kw2">object</span> <span class="kw3">classid</span><span class="sy0">=</span><span class="st0">"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"</span> <span class="kw3">codebase</span><span class="sy0">=</span><span class="st0">"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"test1"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"movie"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"http://rp5.ru/informer/100x100/1/17.swf"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"quality"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"high"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"bgcolor"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"#ffffff"</span>></span>
     <span class="sc2"><<span class="sy0">/</span><span class="kw2">object</span>></span>
   <span class="sc2"><<span class="sy0">/</span><span class="kw2">body</span>></span>
 <span class="sc2"><<span class="sy0">/</span><span class="kw2">html</span>></span>

будет изменен на следующий

<span class="sc2"><<span class="kw2">html</span>></span>
   <span class="sc2"><<span class="kw2">body</span>></span>
     <span class="sc2"><<span class="kw2">object</span> <span class="kw3">classid</span><span class="sy0">=</span><span class="st0">"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"</span> <span class="kw3">codebase</span><span class="sy0">=</span><span class="st0">"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"test1"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"movie"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"C:\Depot\Development\_Global_LastBuild\main\17.swf"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"quality"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"high"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"bgcolor"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"#ffffff"</span>></span>
     <span class="sc2"><<span class="sy0">/</span><span class="kw2">object</span>></span>
     <span class="sc2"><<span class="kw2">object</span> <span class="kw3">classid</span><span class="sy0">=</span><span class="st0">"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"</span> <span class="kw3">codebase</span><span class="sy0">=</span><span class="st0">"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"</span> <span class="kw3">width</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">height</span><span class="sy0">=</span><span class="st0">"100"</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">"test1"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"movie"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"http://rp5.ru/informer/100x100/1/17.swf"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"quality"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"high"</span>></span>
       <span class="sc2"><<span class="kw2">param</span> <span class="kw3">name</span><span class="sy0">=</span><span class="st0">"bgcolor"</span> <span class="kw3">value</span><span class="sy0">=</span><span class="st0">"#ffffff"</span>></span>
     <span class="sc2"><<span class="sy0">/</span><span class="kw2">object</span>></span>
   <span class="sc2"><<span class="sy0">/</span><span class="kw2">body</span>></span>
 <span class="sc2"><<span class="sy0">/</span><span class="kw2">html</span>></span>

2.2.5.3. Паскаль скрипты в теле HTML

В документе HTML паскаль-скриптами могут быть ссылки. При нажатии на сслылку произойдёт не переход по ссылке, а выполнение скрипта в рамках текущей выборки.

Для этого в теле тэга, обозначающего гипер-ссылку, необходимо поместить управляющий тэг <script>. То что находится после этого тэга будет считаться скриптом

Пример
  <a href="<script><Pascal>
    ShowMessage('Hello, World');
  </Pascal>">Паскаль скрипт</a>

Этот же подход можно использовать и с помощью JS формировать паскаль операции не лету:

Пример вызова из JS произвольно составленной паскаль операции
  <HTML>
    <script type="text/javascript">
      func t ion popup() {
        alert('popup Hello World!');
        window.location.assign("<script> <Pascal>ShowMessage('PASCAL Hello, World');</Pascal>");
      }
    </script>
    <Body>
      <a id="myLink" title="Click to do something" nohref onclick="popup();return false;">JS Script</a>
    </Body>
  </HTML>