| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Вёрстка веб-сайтов > Сделать весь фрейм ссылкой |
| Автор: Всемогущий 6.3.2007, 19:42 |
| Сделать весь фрейм ссылкой. Возможно ли это? |
| Автор: Mymik 6.3.2007, 20:57 |
| да, поставь у фрейма onclick="document.location = 'http://www.microsoft.com/'" |
| Автор: Всемогущий 6.3.2007, 21:05 | ||
именно так .не работает |
| Автор: Mymik 7.3.2007, 10:02 | ||
А есть возможность в теле iframe приписать на body событие onclick ??? Если руками нет возможности, тогда с помощью JS нужно.
Однако к сожалению не знаю, сработает ли это для всего документа или только для фрейма... Если не сработает для всего документа, тогда скорее всего надо будет через window.location = "http://www.microsoft.com/" сделать. |
| Автор: Mymik 7.3.2007, 13:34 | ||
| тогда предлагаю несколько замороченное предложение :о) Записать iframe в див :о)
|
| Автор: hAhol13 9.11.2009, 08:53 |
| Извиняюсь за поднятие оччень старой темы, но нашел через поиск - как раз та тема, над которой бьюсь уже сутки. Имеется iframe, уже в div. необходимо, чтоб по клику открывалось новое окно с содержимым фрейма (весь фрейм - картинка, обновляемая яваскриптом). Перепробовал всё, в том числе предложенное здесь. Если есть какие-либо еще идеи, то буду благодарен. Заранее спасибо! |
| Автор: bars80080 9.11.2009, 15:12 | ||
не важно как нашли, если у вас своя проблема, то задавайте вопрос в своей теме. а то читаешь всё что сверху и вдруг оказывается вопрос в другом.
по клику чего? по фрейму или кнопки какой? во фрейме ваш домен или иной? можно попробовать растянуть над фреймом слой абсолютно позиционированный и написать переход по нему кстати, везде где выше советовалось document.location - ошибка, у document нет такого свойства, переправьте на window.location во-вторых, новое окно средствами javascript открывается с помощью window.open() и в-третьих, в таком урезанном варианте задача кажется совершенно не реальной (ну, мож криминалом чуть попахивает), можете рассказать что конкретно у вас происходит на странице? |
| Автор: hAhol13 9.11.2009, 19:00 | ||
| Хм.. по другим форумам привык, что "не создавайте новые темы" Более подробно суть вопроса: Имеется страничка, полностью разделенная на 4 равных части, в каждую подгружается изображение с внешних источников. Разделение - CSS, div. То есть 4 div'а, в каждом iframe, параметром src подгружаю изображение. Далее содержимое фрейма (изображение) обновляется посредством яваскрипта:
По большому счету всё замечательно и изумительно, но мне нужно, чтоб кликом по изображению открывалось новое окно с одним единственным изображением - с тем, что было в том фрейме. Обновление настроить думаю будет менее трудно. |
| Автор: bars80080 9.11.2009, 20:06 |
| а нельзя ли самому изображению назначить кликабельность? то есть код внутри фрейма поддаётся правке? |
| Автор: hAhol13 10.11.2009, 18:44 | ||
Хм.. то есть? Изображение подгружается так:
Между открывающим и закрывающим, собственно, и нет ничего... |
| Автор: bars80080 10.11.2009, 19:02 |
| в смысле? путь к картинке в src iframe`а? |
| Автор: hAhol13 10.11.2009, 19:06 | ||
Ну да. А вы предлагаете так:
Верно? |
| Автор: bars80080 10.11.2009, 20:11 |
| в общих чертах да. одно непонятно, зачем вообще здесь фреймы? |
| Автор: hAhol13 11.11.2009, 04:20 |
| Обновление. Мне неудобен тег meta. Мне удобней именно обновление по скрипту refreshiframe А что значит "в общих чертах"? |
| Автор: Любитель 11.11.2009, 08:31 | ||
|
| Автор: bars80080 11.11.2009, 10:36 |
не понял. какие meta? почему картинки было не засунуть в дивы на одной странице? значит, что реализаций много. <a href="" target="_blank"> или <img onclick="" /> |
| Автор: hAhol13 11.11.2009, 14:24 |
| meta - это у которого http-equiv=refresh. Кстати через <a href=""> c img внутри не работает. Через img onclick как должно быть? <img onclick="window.open('ссылка'); return false;"/> Так? src у img не надо менять, он один и тот же. Просто картинка с данным адресом обновляется где-то там. Просто refreshiframe не перезагружает всю страничку целиком, а только эти картинки. И через необходимые (разные для каждой картинки) промежутки времени. Как бы всех устраивает ЗЫ Плагин-валидатор в огнелисе полностью согласен с таким <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> Метод валидации - сначала SGML Parser, потом HTML Tidy |
| Автор: bars80080 11.11.2009, 14:59 | ||||||
можно менять
это даст вам 100%-ную перезагрузку не взирая ни на какие кэши. к тому же, насколько я помню meta refresh работает только в ИЕ не могёт такого быть.
|
| Автор: hAhol13 11.11.2009, 19:46 | ||
Так - не работает. Ни в ИЕ, ни в Огнелисе, ни в Опере.. Кстати meta refresh у меня и в Огнелисе работал. В опере не помню. Ссылка на изображение, так сказать, статична и от меня не зависит. Я наверно, просто не понимаю, в силу ограниченности знаний, что вы предлагаете сделать с этой самой ссылкой для перезагрузки изображения.. |
| Автор: Любитель 11.11.2009, 20:48 |
| bars80080 прав - в 99% случаев достаточно добавления рандомного гет-параметра (есть исключения, но они редки). Какого вида твои ссылки? |
| Автор: bars80080 11.11.2009, 21:11 | ||
|
| Автор: hAhol13 12.11.2009, 05:36 | ||
| Большое спасибо.. Ссылки (их 4) имеют вид http://server.ru/dir/name.html Я очень благодарен bars80080 за то время, что Вы на меня тратите. После данного вашего примера начало работать автомасштабирование изображений, и, самое главное, ссылки. Теперь изображения кликабельны и открывают себя в новом окне Я правильно понимаю, что при фреймах не было автомаштабирования (цсс) и ссылки не работали, из-за того что это было в обновляющемся фрейме? UPD: Вспомнил про упоминание растягивания абсолютно позиционированного слоя поверх уже имеющегося изображения, вот что получилось:
Работает в огнелисе - обновление, кликабельность. А вот в ИЕ и опере - нет.. |
| Автор: bars80080 12.11.2009, 10:52 | ||
строится неправильный адрес. выведите, что получается (к примеру так: alert(el[i].src);) и посмотрите что там у вас. подставьте этот адрес в адресную строку браузера, точно ли там есть изображение п.с. чуть не забыл, я надеюсь вы там используете абсолютные адреса, начинающиеся с http:// ? |
| Автор: hAhol13 12.11.2009, 17:29 | ||
| Да, адреса идут вида http:/server.ru/dir/name.html (правда один есть оканчивается на пхп, но суть-то таже у него..) Вывожу таким образом: <body onload="refr(); alert(el[i].src);">. Ну собственно выводил и без refr();. Ие выдает ошибку
И вопрос - возможно, метод и не очень красивый, но со слоем же работает.. Почему только в фоксе? |
| Автор: bars80080 12.11.2009, 18:46 |
в данном случае ничего и не будет, el определена только внутри функции |
| Автор: hAhol13 12.11.2009, 20:37 |
| Виноват Значит так.. изображение делается так: <img class="имя" src="ссылка" title="что-то" alt="что-то"/> Из сообщения alert я узнаю, что адрес строится как путь до директории, содержащей файл index.html (который в себе и содержит весь код моей злополучной странички) + содержимое title +?par=xxxx: file:///C:/dir1/dir2/"title"?="xxxx" Как уже сказал, dir2 содержит в себе файл index.html. Но разумеется, там нет ничего похожего на построенный адрес. Почему строится он к локальным документам? ЗЫ параметр alt потребован SGML Parser'ом |
| Автор: bars80080 13.11.2009, 00:57 |
ух ты, какая страшная вещь. а ведь она никакого отношения к вэбу не имеет. такое может глючить по разному. вэб-адреса начинаются с http:// |
| Автор: hAhol13 13.11.2009, 07:35 | ||
|