Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > <object> + gif


Автор: dm9 21.10.2004, 17:03
Всем привет. Такая проблема.

<html>
<body>
<object data="menu1.gif" type="image/gif">
This is a navigation bar
<a href="#">qwe</a>
</object>
</body>
</html>

В Опере, Netscape работает, в IE не хочет показываться ни картинка, ни альтернативный текст.
img не идёт, так как нужно, если не грузится картинка, дать ссылку (если пользователь отключил загрузку картинок).

Автор: GoodBoy 21.10.2004, 17:08
Цитата(dm9 @ 21.10.2004, 18:03)
img не идёт, так как нужно, если не грузится картинка, дать ссылку (если пользователь отключил загрузку картинок)

Не совсем понял, а почему???? Почему нельзя сделать вот так:
Код
<html>
<body>
<a href="#"><img src="menu1.gif" alt="This is a navigation bar"></a>
</body>
</html>

Автор: dm9 21.10.2004, 17:09
Ситуация такая. Картинка - будущий map.
Если загрузка картинок отключена, даём текстовый вариант меню.
Добавлено @ 17:10
Делаю как тут, в ИЕ нихрена не работает
http://www.w3.org/TR/REC-html40/struct/objects.html#edef-MAP
Добавлено @ 17:11
О!
HTML
<P><OBJECT data="navbar1.gif" type="image/gif" usemap="#map1">
<P>This is a navigation bar.
</OBJECT>

<MAP name="map1">
<AREA href="guide.html"
alt="Access Guide"
shape="rect"
coords="0,0,118,28">
<AREA href="search.html"
alt="Search"
shape="rect"
coords="184,0,276,28">
<AREA href="shortcut.html"
alt="Go"
shape="circle"
coords="184,200,60">
<AREA href="top10.html"
alt="Top Ten"
shape="poly"
coords="276,0,276,28,100,200,50,50,276,0">
</MAP>


Не работает!!!!!!!! Уже час мучаюсь...
Добавлено @ 17:13
W3C recomendations, блин...

Автор: GoodBoy 21.10.2004, 17:16
А без карты - отдельными рисунками - нельзя???? Удобнее будет!!!! Прописал альты и всё!

Автор: dm9 21.10.2004, 17:19
GoodBoy, нельзя. Хрен разрежешь нормально... 21 ссылка + не горизонтально относительно друг друга... Потом, маленькие поля получатся, альты не влезут. Некрасиво будет. В общем, я эту идею отсеял. надо чтоб работал альтернативный текст, и не только текст, а ещё и гипертекст.

Автор: GoodBoy 21.10.2004, 17:38
Понятно... Сделай флешем! ;-)

Автор: dr.ZmeY 22.10.2004, 00:14
Код

...
<TD>
           <script><!--
                SuppI=0;ti='/images/map.gif'
           //--></SCRIPT>

           <script
           language=JavaScript1.1><!--
           SuppI=1;ti='/p.gif'
           //--></SCRIPT>

           <script><!--
           document.write('<img name=map src="'+ti+'" width=426 height=226 USEMAP="#imap" border=0>')
           //--></SCRIPT>
           <NOSCRIPT>
               <IMG height=226 src="\pic.gif" width=426 useMap=#imap border=0>
           </NOSCRIPT>
</TD>
<MAP name=imap><AREA shape=CIRCLE alt=Ссылка coords=142,43,5 href="#">
       ...
</MAP>
...

Добавлено @ 00:16
ээээ блин... Опять с отключением графики траблы...
GoodBoy
Нет, флэш - только хуже, если он отключён, тогда вообще ничего не будет...

Автор: dr.ZmeY 22.10.2004, 00:55
Слушай, а сделай слой с картой, который имеет размер картинки, если графика откключена, то слой становится минимальным размером, а под ним обычное текстовое меню... Немного замороченее, но должно работать.
Добавлено @ 00:56
Слушай, а сделай слой с картой, который имеет размер картинки, если графика откключена, то слой становится минимальным размером, а под ним обычное текстовое меню... Немного замороченее, но должно работать.

Автор: dm9 22.10.2004, 00:59
dr.ZmeY, тогда ламерский вопрос, слой минимальным размером - это как? Я сам его размеры уменьшаю? А как я узнаю, что графика отключилась? JavaScript не очень-то знаю...

Автор: dr.ZmeY 22.10.2004, 01:19
Код

  <BODY>
  <div id="Layer1" style="position:absolute; left:7px; top:7px;  z-index:1; visibility: inherit;">
  <img src="9.jpg" alt="" width="1024" height="768" border="0" usemap="#Map">
  <map name="Map">
    <area shape="circle" coords="44,49,8" href="#" alt="Меню1">
    <area shape="circle" coords="223,108,8" href="#" alt="Меню2">
    <area shape="circle" coords="75,157,8" href="#" alt="Меню3">
    <area shape="circle" coords="127,114,7" href="#" alt="Меню4">
    <area shape="circle" coords="192,175,6" href="#" alt="Меню5">
  </map>
  </div>
  <table width="100" border="0">
    <tr>
      <td><a href="#">Меню1</a></td>
    </tr>
    <tr>
      <td><a href="#">Меню2</a></td>
    </tr>
    <tr>
      <td><a href="#">Меню3</a></td>
    </tr>
    <tr>
      <td><a href="#">Меню4</a></td>
    </tr>
    <tr>
      <td><a href="#">Меню5</a></td>
    </tr>
  </table>

  </BODY>

Вот, типа этого...
Как вроди без всяких скриптов... ;-)

Автор: dm9 22.10.2004, 01:35
Спасибо.
Только width и height надо убрать, а то загораживается менюшка...
Как вариант беру, но плохо :(
В ИЕ остаётся значок неподруженной картинки. Потом, непросто будет поместить все пункты меню строго под картинку...

В общем, вопрос открыт. Кто имеет соображения - пишите.

Автор: dr.ZmeY 22.10.2004, 01:56
В картинке поставь нулевой (пустой) альт... Как в примере...
Цитата(dm9 @ 22.10.2004, 02:35)
Потом, непросто будет поместить все пункты меню строго под картинку...

Ну, тут уже нужно изловчиться...


Я подумаю, может ещё что-нибудь в голову придёт...
Добавлено @ 01:57
Но в Опере работает безукаризнено... :)

Автор: dm9 22.10.2004, 02:02
Чисто твой пример, только width и height изменены:
Ссылки в ИЕ закрываются картинкой (Опера - всё работает).
Но это всё неважно... мелочи.
Добавлено @ 02:06
Странно, почему этот object не работает... Я поэкспериментировал, поле type вообще не играет никакой роли. Опера и Netscape нормально отображают и так:

<object data="1.gif>
lalala
</object>

Определяют тип файла по расширению, видимо...

Автор: dr.ZmeY 22.10.2004, 02:10
Да, и только в ИЕ

Автор: Gold Dragon 22.10.2004, 08:05
Может тогда так
Код
<BODY>
<div id="Layer1" style="position:absolute; left:7px; top:7px;  z-index:1; visibility: inherit;">
<img src="9.jpg" alt="" width="1024" height="768" border="0" usemap="#Map" id="qqq" onerror="q()">
<map name="Map">
 <area shape="circle" coords="44,49,8" href="#" alt="Меню1">
 <area shape="circle" coords="223,108,8" href="#" alt="Меню2">
 <area shape="circle" coords="75,157,8" href="#" alt="Меню3">
 <area shape="circle" coords="127,114,7" href="#" alt="Меню4">
 <area shape="circle" coords="192,175,6" href="#" alt="Меню5">
</map>
</div>
<table width="100" border="0">
 <tr>
  <td><a href="#">Меню1</a></td>
 </tr>
 <tr>
  <td><a href="#">Меню2</a></td>
 </tr>
 <tr>
  <td><a href="#">Меню3</a></td>
 </tr>
 <tr>
  <td><a href="#">Меню4</a></td>
 </tr>
 <tr>
  <td><a href="#">Меню5</a></td>
 </tr>
</table>
<script>
function q(){
document.getElementById("qqq").style.display = "none"
}
</script>
</BODY>

Автор: dr.ZmeY 22.10.2004, 11:56
Red Dragon, Нет, не помогло. ИЕ по оюбому читает размер картинки, и нужно отключать слой, а не картинку. Сработает только если ИЕ не найдёт картинку. :(

Т.е. сработало, только когда я переименовал файл с картинкой, а до этого слой перекрывал меню :(

Автор: dm9 22.10.2004, 12:12
dr.ZmeY, width и height просто не задавать, как я уже писал... В общем-то белее-менее получается...

Идея насчёт object. Может, ему какой clsid скормить, как в случае с флешкой? Только где его взять?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)