Страница 1 из 1
Строка стотояния на js
Добавлено: 2007-12-13 10:21:20
Alex Keda
имею такой код:
Код: Выделить всё
<a onmouseover="window.status='http://www.another.site.su/'; return true;" onmouseout="window.status='';" href="http://site.ru">текст</a>
думаю понятно - при наведении на линк в строке стотояния показывается не настоящий УРЛ куда ведёт ссылка (на самом деле она приведёт туда, но через редирект, ну да не суть)
проблема - в ослике пашет, в лисе - вообще ничё не показывает, в опере показывает реальный линк.
Блин - как бы сделать кроссплатформенным?
Re: Строка стотояния на js
Добавлено: 2007-12-17 1:53:21
BlackCat
Опера как всегда отличилась. Как сделать с наведением курсора не знаю, но есть вариант, который в ответах гугловских используется (в Опере пашет). Там параметр href у ссылок задан нормально, но используется событие OnMouseDown, вызываемая функция перезаписывает параметр href, на скрипт редиректа, перед переходом.
В коде примерно так.
Ссылка:
Код: Выделить всё
<a
href="http://www.yandex.ru"
onmousedown=" this.href='http://www.google.com'; return true;"
onmouseout=" this.href='http://www.yandex.ru'; return true;"
target="_blank"
>http://www.yandex.ru</a>
Есть правда несколько недостатков. При отключенных скриптах редирект не сработает. В опере редирект сработает, только если щелкать мышью (если выбрать ссылку и ткнуть Enter, то не работает; не работает если выбрать открыть в новой вкладке). В IE если ткнуть правой кнопкой грызуна, то текст (если в нем записан адрес) измениться на подставной

Если в тексте нет адреса, то все нормально.
Re: Строка стотояния на js
Добавлено: 2008-01-09 14:45:38
zg
пробуйте
Код: Выделить всё
<a title="YANDEX!!!" style="cursor:pointer" onmouseover="oldStatus=status;status='YANDEX!!!'" onmouseout="status=oldStatus" onclick="location.href='http://yadenx.ru'">yandex.ru</a>
в опере и FF работает, в IE не проверял, нету его у меня
Re: Строка стотояния на js
Добавлено: 2008-01-09 15:05:10
Alex Keda
zg писал(а):пробуйте
Код: Выделить всё
<a title="YANDEX!!!" style="cursor:pointer" onmouseover="oldStatus=status;status='YANDEX!!!'" onmouseout="status=oldStatus" onclick="location.href='http://yadenx.ru'">yandex.ru</a>
в опере и FF работает, в IE не проверял, нету его у меня
ещё не пробовал, но хочу спросить - а если жава отключена?

предполагаю, ссылка будет нерабочей

если тока определять есть ли жаба, если есть писать через document.write с подменой, если нет - то прямую, ибо смысла нет
Re: Строка стотояния на js
Добавлено: 2008-01-09 15:14:07
zg
lissyara писал(а):если тока определять есть ли жаба, если есть писать через document.write с подменой, если нет - то прямую, ибо смысла нет
нууу.. если учесть, что в опере строка состояния по-умолчанию отключена, в ff работает коряво, а в ie переопределение ссылок в статусной строке - дурной тон, то может проще оставить всё как есть?

ведь есть ещё браузеры konqueror, links и ещё куча, которыми пользуешься по необходимости, но всё-равно пользуешься

Re: Строка стотояния на js
Добавлено: 2008-01-09 16:29:52
Alex Keda
да мне троицу популярную окучить и всё

Re: Строка стотояния на js
Добавлено: 2008-01-09 18:10:11
zg
Код: Выделить всё
<script language="javascript">
function changeStatus( s )
{
window.status = s
return true;
}
document.writeln('<a style="cursor:pointer; color: blue; text-decoration: underline" title="Yandex" onmouseover="return changeStatus(this.title)" onmouseout="return changeStatus(\'\')" onclick="location.href=\'http://yandex.ru\'">yandex.ru</a>');
</script>
<noscript>
<a href="http://yandex.ru" title="Yandex">yandex</a>
</noscript>
вобщем, в IE6, Opera9, FF2 под винду всё работает с JS, так и без него. Единственное - в FF нужно в настройках разрешить JS изменять строку состояния, иначе не работает.