Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.02;
Скачать: CL | DM;

Вниз

html-засада   Найти похожие ветки 

 
Nous Mellon_   (2005-09-06 21:32) [0]

Засада.

Есть такая простенькая с виду задача. Надеюсь, она не только с виду простенькая, но таковой и является.

Вот html-файлик со ссылкой в теле и маленьким JavaScript скриптом

------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>

<script type="text/javascript" >

function Change()
{
 idtest.href = "www.some.com";
 idtest.innerText = "Установили";
}

</script>

</head>

<body>

<a id="idtest" onclick="Change()">Атрибут href не стоит </a>

</body>
</html>
----

По умолчанию у ссылки idtest нет атрибута href. Есть задача по щелчку установить ему этот атрибут в некое значение,
но не переходить по ссылке. То есть как бы щелчком ее активировать, а следующим уже перейти. А он, зараза, переходит
на эту страницу сразу без всяких предупреждений. Какой бы совершить финт ушами, чтобы атрибут установить, а по ссылке ходить только
после слудющего щелчка?


 
Gero ©   (2005-09-06 21:38) [1]

1. Попробуй дописать return false в Change.
2. В ссылке всегда должен присутствовать атрибут href.
3. Зачем для этого использовать именно <A>?


 
palva ©   (2005-09-06 21:54) [2]

Я бы сделал так:

function Change() {
 if(idtest.href=="") {
   idtest.href = "http://www.mk.ru";
   idtest.innerText = "Установили";
   return false;
 } else {
   return true;
 }
}

...

<a id="idtest" onclick="return Change()">Атрибут href не стоит </a>


 
Nous Mellon_   (2005-09-07 09:22) [3]

Спасибо Gero и palva. Помогли эти две строки

1. Попробуй дописать return false в Change.
onclick="returnChange()">

На вопросы отвечу:

> 2. В ссылке всегда должен присутствовать атрибут href.

Насколько я знаю, если атрибут HREF не стоит, то ссылка просто якорь. Так?
> 3. Зачем для этого использовать именно <A>?

А что еще можно? Чтобы было не очень коряво


 
Alexander Panov ©   (2005-09-07 11:50) [4]

Nous Mellon_   (07.09.05 9:22) [3]
А что еще можно?


Да хотя бы <font>

Можно даже и свой атрибут определить в стилях.


 
purvainais   (2005-09-07 13:27) [5]

>>Да хотя бы <font>

тег <font> устарел и нерекомендуется к использованию HTML. см. спецификацию HTML 4.011 http://www.w3.org/TR/html4/


 
Alexander Panov ©   (2005-09-07 14:08) [6]

purvainais   (07.09.05 13:27) [5]
тег <font> устарел и нерекомендуется к использованию HTML. см. спецификацию HTML 4.011 http://www.w3.org/TR/html4/


Это никкого не интересует. Здесь тэг не для того используется.

Можешь, если страшно использовать <font>, вообще   определить в стилях:

MM {}

А в HTML:
<MM onclick="MyFunc()">Test</MM>

Но ведь MM не описан в W3C, не так-ли?


 
purvainais   (2005-09-07 14:35) [7]

Напомню, что речь идёт о HTML 4.01, а не о XML, и документ, который будет содержать нестандартные тэги, будет невалидным HTML.
>Nous Mellon_   (06.09.05 21:32)
><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

Насчёт определeня в стилях, то новые теги определяются вовсе не в стилях, а в DTD или Schema.


 
Gero ©   (2005-09-07 18:29) [8]


Nous Mellon_   (07.09.05 09:22)

> Насколько я знаю, если атрибут HREF не стоит, то ссылка
> просто якорь. Так?

В принципе, да. Возможно я неправ.
> А что еще можно? Чтобы было не очень коряво

<span>.
Делаешь два CSS-класса, например mylink_normal, mylink_click. Задаешь нужные свойства для каждого из них.
Изначально выставляешь class = "mylink_normal".
Потом в onclick просто пишешь idtest.class = "mylink_click".

Alexander Panov ©   (07.09.05 14:08)
> MM {}
>
> А в HTML:
> <MM onclick="MyFunc()">Test</MM>

Так нельзя. purvainais абсолютно прав.


 
Alexander Panov ©   (2005-09-07 18:40) [9]

Gero ©   (07.09.05 18:29) [8]
Так нельзя.


Почему? Работает ведь.


 
Gero ©   (2005-09-07 18:44) [10]


> Почему? Работает ведь.

Потому что есть такая вещь, как спецификация. И ее нужно соблюдать.


 
Alexander Panov ©   (2005-09-07 18:51) [11]

Gero ©   (07.09.05 18:44) [10]
Потому что есть такая вещь, как спецификация. И ее нужно соблюдать.


А разве определение стиля MM {...} не входит в спецификацию?


 
Gero ©   (2005-09-07 19:02) [12]


> Alexander Panov ©   (07.09.05 18:51)

Нет. См. [7] пост.
А если какой-то браузер позволяет в таблице стилей обьявлять новые тэги, то это его проблемы.


 
Nous Mellon_   (2005-09-07 21:45) [13]


> <span>.
> Делаешь два CSS-класса, например mylink_normal, mylink_click.
> Задаешь нужные свойства для каждого из них.
> Изначально выставляешь class = "mylink_normal".
> Потом в onclick просто пишешь idtest.class = "mylink_click".

Спасибо, принято

Появился еще вопрос -- не хочется заводить новую ветвь.

Совсем забыл где включается и выклоючается поддержка JS в стандартном IE?


 
begin...end ©   (2005-09-07 21:54) [14]

> Nous Mellon_   (07.09.05 21:45) [13]

> Совсем забыл где включается и выклоючается поддержка JS
> в стандартном IE?

Сервис -> Свойства обозревателя -> Безопасность -> Другой... (для каждой зоны).


 
Nous Mellon_   (2005-09-08 10:27) [15]


> Сервис -> Свойства обозревателя -> Безопасность -> Другой...
> (для каждой зоны).

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2005.10.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.045 c
4-1123576343
Po
2005-08-09 12:32
2005.10.02
WinAPI процесс CD-ROM`a


5-1101467167
TankMan
2004-11-26 14:06
2005.10.02
Гиде найти редактор компонента для TPageControl?


4-1123070759
Jet
2005-08-03 16:05
2005.10.02
Как отловить момент закрытия консольного приложения?


1-1126602981
matroskin
2005-09-13 13:16
2005.10.02
Dll


1-1126106582
KLAUS
2005-09-07 19:23
2005.10.02
WriteFloat