Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ссылки на основе ДОМ объектов документа
 
 автор: Владимир55   (05.03.2009 в 12:27)   письмо автору
 
 

Можно ли считать правильным нижеприведенный код страницы, содержащий ссылку на основе ДОМ объекта:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>ПРИМЕР</title>
</head>

<body>
<div id="one" title="http://site.ru/" style='display:none'>Жми сюда</div>

<script>
a= document.getElementById('one');
document.write("<a href='"+a.title+"'>"+a.innerHTML+"</a>");
</script>

</body>

</html>

  Ответить  
 
 автор: cheops   (05.03.2009 в 16:37)   письмо автору
 
   для: Владимир55   (05.03.2009 в 12:27)
 

А какой критерий "правильности" вы используете? Работает не работает? Валидный код, не валидный? С какой точки зрения хотите оценить пример?

  Ответить  
 
 автор: Владимир55   (05.03.2009 в 19:27)   письмо автору
 
   для: cheops   (05.03.2009 в 16:37)
 

В работе я эту ссылку попробовал. Работает. Ну, мало ли, что она работает, может это кустарщина...

Так что оценка нужна с позиции корректности (валидности).

А еще хотелось бы его усложнить каким-либо образом, чтобы исключить компоненту http://site.ru/. Например, как-нибудь разбить её на части.

============
Ссылка предназначена для сокрытия от ботов.

  Ответить  
 
 автор: amigo63   (05.03.2009 в 22:04)   письмо автору
 
   для: Владимир55   (05.03.2009 в 19:27)
 

Да как сказать, кустарщина...)
Вообще-то все нормуль, но document.write и innerHTML W3C использовать не рекомендует...
И еще я бы сделал так:

<script> 
var a = document.getElementById('one'); 
document.write("<a href='"+a.title+"'>"+a.innerHTML+"</a>"); 
</script>

  Ответить  
 
 автор: Владимир55   (05.03.2009 в 22:19)   письмо автору
 
   для: amigo63   (05.03.2009 в 22:04)
 

Мне самому не нравится вот это:
<div id="one" title="http://site.ru/" style='display:none'>Жми сюда</div>
Не нравится то, что там фигурирует адрес сайта http://site.ru/. Можно ли от этого избавться? Чтобы в чистом виде адреса не было - пусть скрипт как-нибудь собирает его из частей. Возможно это?

  Ответить  
 
 автор: amigo63   (05.03.2009 в 22:39)   письмо автору
 
   для: Владимир55   (05.03.2009 в 22:19)
 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>ПРИМЕР</title>
</head>

<body>
<div id="one" title="site_1_ru" style='display:none'>Жми сюда</div>

<script>
var a = document.getElementById('one');
var link = a.title.split("_1_");
var p = 'http';

document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'/">'+a.innerHTML+'</a>');
</script>

</body>

</html>
ну вот как-то так

  Ответить  
 
 автор: Владимир55   (05.03.2009 в 23:16)   письмо автору
 
   для: amigo63   (05.03.2009 в 22:39)
 

Вот так работает:
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
<title>ПРИМЕР</title> 
</head> 

<body> 
<div id="one" title="site_1_ru" style='display:none'>Жми сюда</div> 

<script> 
var a = document.getElementById('one'); 
var link = a.title.split("_1_");
var p = 'http';
document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'/">'+a.innerHTML+'</a>'); 
</script> 

</body> 


И само решение очень интересное.

А как можно в разных местах одной странице разместить ДВЕ таких же ссылки на один и тот же УРЛ?

Простое дублирование кода достигнуть этого не позволяет.

  Ответить  
 
 автор: amigo63   (06.03.2009 в 13:06)   письмо автору
 
   для: Владимир55   (05.03.2009 в 23:16)
 

Честно говоря, я новичок в JS :) разве вставка
<script>  
var a = document.getElementById('one');  
var link = a.title.split("_1_"); 
var p = 'http'; 
document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'/">'+a.innerHTML+'</a>');  
</script>

в разные места страницы не срабатывает?

  Ответить  
 
 автор: Владимир55   (06.03.2009 в 13:57)   письмо автору
 
   для: amigo63   (06.03.2009 в 13:06)
 

Да, так работает. А если сделать разные id, то можно и ссылки иметь самостоятельные. Так что спасибо!

Однако проявился другой досадный нюанс: попробуйте в качестве адреса использовать http://site.ru/?mm=1&ss=2

Ошибка возникает!

Можете это поправить?

  Ответить  
 
 автор: amigo63   (06.03.2009 в 15:06)   письмо автору
 
   для: Владимир55   (06.03.2009 в 13:57)
 

Попорбуйте
var t=encodeURIComponent(a.title);
var link = t.split("_1_");

или заменить & На &amp;

  Ответить  
 
 автор: Владимир55   (06.03.2009 в 16:27)   письмо автору
 
   для: amigo63   (06.03.2009 в 15:06)
 

Не понял.

Не могли бы Вы написать код полностью?

  Ответить  
 
 автор: amigo63   (06.03.2009 в 16:36)   письмо автору
 
   для: Владимир55   (06.03.2009 в 16:27)
 


<script>   
var a = document.getElementById('one');   
var t=encodeURIComponent(a.title); 
var link = t.split("_1_");
var p = 'http';  
document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'/">'+a.innerHTML+'</a>');   
</script>

но я не уверен, что поможет. А какую ошибку выдает?

  Ответить  
 
 автор: Владимир55   (06.03.2009 в 16:48)   письмо автору
 
   для: amigo63   (06.03.2009 в 16:36)
 

Последний вариант вообще не дает ссылки (не кличестся). Даже когда мышку подносишь, рука не появляется.

А предыдущий код при наличии динамического адреса в конце его дает слеш. Получается так:
http://site.ru/?mm=1&ss=2/


Такая же ситуация возникает при ссылке на конкретную страницу. Вместо
http://site.ru/abc.html
получаем
http://site.ru/abc.html/

  Ответить  
 
 автор: amigo63   (06.03.2009 в 16:56)   письмо автору
 
   для: Владимир55   (06.03.2009 в 16:48)
 

<script>    
var a = document.getElementById('one');    
var t=encodeURIComponent(a.title);  
var link = t.split("_1_"); 
var p = 'http';   
document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'">'+a.innerHTML+'</a>');    
</script>

или так
<script>   
var a = document.getElementById('one');   
var link = a.title.split("_1_");  
var p = 'http';  
document.write('<a href="'+p+'://'+link[0]+'.'+link[1]+'">'+a.innerHTML+'</a>');   
</script>

  Ответить  
 
 автор: Владимир55   (06.03.2009 в 17:11)   письмо автору
 
   для: amigo63   (06.03.2009 в 16:56)
 

Второй вариант работает!

Да как здорово работает!

Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования