Обход JavaScript`а

Prada

Guest
Обход JavaScript`а

Вобщем есть фотогалерея, в которой ссылки на изображения выглядят примерно так: <a href="javascript:;" onclick="javascript:eek:penwin('http://site/123.jpg', 'title', ... и т.д.
При отключенном в браузере JavaScript ссылка не работает.
Вопрос: как сделать проверку на вкл/выкл JS в браузере, чтоб при выключенном JS вышеуказанный вид ссылки менялся на <a href="http://site/123.jpg">

Пробывал такое:
PHP:
 <noscript>
<?
$js = "no";
?>
</noscript>
Но это не работает, т.е. переменной $js присваивается значение "no".
Вопрос может и тупой, кто знает подскажите как это можно организовать.
 

Prada

Guest
<a href="http://site/123.jpg" target="new_window" onclick="javascriptpenwin('http://site/123.jpg', 'title', ... и т.д.">ссылка</a>
это подходит если JS выключены, ну а если же включены то помимо открываемого нового окна яваскриптом, открывается и еще одно...
 

Crazy

Developer
1. Все ссылки делать нормальными.
2. После загрузки страницы пройтись по DOM-дереву и изменить ссылки. Если JS отключен, что второй этап отвалится сам собой.
 

SelenIT

IT-лунатик :)
По-моему,
<a href="http://site/123.jpg" target="new_window" onclick="openwin('http://site/123.jpg', 'title', ... и т.д.; return false;">ссылка</a>
будет вполне достаточно...
 

SelenIT

IT-лунатик :)
Crazy
Для простоты :)
Ведь применительно к фотогалерее основной объем трафика, имхо, создают сами картинки, а не HTML. К тому же, данные для 'title' и "... и т.д." по-любому ведь придется как-то передавать (либо получать внутри ф-ции openwin)...
 

WMix

герр M:)ller
Партнер клуба
PHP:
// ***************************************************************************

	function changeLinks( element ){
		if( element.nodeType == 1 && element.nodeName.toLowerCase()=="a"){
			
			for( i=0; i<element.attributes.length; i++ ){
				if( element.attributes[i].nodeName == "href"){
					element.attributes[i].nodeValue = "javascript:myHref('" + element.attributes[i].nodeValue + "')";
				}
			}
		}
		if( element.hasChildNodes() ){
			var next = element.firstChild;
			//alert(next.nodeName);
			do{
				changeLinks( next );
			} while( next = next.nextSibling );
		}
	}

// ***************************************************************************

	function myHref( url ){
		alert(url);
		location.href = url;
	}

// ***************************************************************************
changeLinks( document.documentElement );

все линки написаны в нормальном виде!!!

функция changeLinks( element ) заменяет <a href="http//....." >
на <a href="javascript:myHref( http//..... ) " >
 

akxxiv

Новичок
Автор оригинала: Prada
<a href="http://site/123.jpg" target="new_window" onclick="javascriptpenwin('http://site/123.jpg', 'title', ... и т.д.">ссылка</a>
это подходит если JS выключены, ну а если же включены то помимо открываемого нового окна яваскриптом, открывается и еще одно...
Попробуй после открытия вернуть фальш:

PHP:
<a href="http://site/123.jpg" target="new_window" onclick="javascriptpenwin('http://site/123.jpg', 'title', ... и т.д.); [B]return false[/B]">ссылка</a>
 
Сверху