Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JS на конкретный Url (https://javascript.ru/forum/misc/7818-js-na-konkretnyjj-url.html)

Blizzart 20.02.2010 19:26

JS на конкретный Url
 
Здравствуйте, уважаемые, форумчани.
У меня такой вопрос: возможно ли чтобы JS включал css только тогда, когда заходишь на конкретный адрес?
Например, у меня статья, которая отображается на главной странице, но хочу чтобы, когда заходишь в статью, она отображалась с другим стилем.
http://comfortown.orgfree.com/ здесь хочу сделать это с новостями.

vk65535 20.02.2010 22:11

<head>
...
<script type="text/javascript">
if (String(location).substr(0, 29) === 'http://comfortown.orgfree.com')
	document.write('<link rel="stylesheet" type="text/css" href="yourCSS.css" />');
</script>
...
</head>

Blizzart 21.02.2010 00:22

<script type="text/javascript">
	if (String(location).substr(0, 29) === 'http://comfortown.orgfree.com/index.php/newslatest')
	document.write('<style type="text/css">
<!--
.contentpaneopen a:link {	
    visibility:hidden;
}
.contentpaneopen a:visited {	
    visibility:hidden;
}
.a:link {	
    visibility:hidden;
}
.p {	
    visibility:hidden;
}
-->
</style>');
</script>

А вот такая конструкция рабочая?
Просто она не работает, хотя я ее в страницу интегрировал с помощью JUMI

vk65535 21.02.2010 01:23

Результат работы String(location).substr(0, 29) нельзя сравнивать с 'http://comfortown.orgfree.com/index.php/newslatest', такое сравнение всегда будет ложно, так как у этой строки длина явно больше 29. Можно еще так проверить адрес:
if (location.hostname === 'comfortown.orgfree.com' && location.pathname === '/index.php/newslatest')
Если у вас хост не меняется, можете оставить только проверку пути.
Теперь насчет write: в яваскрипте, если я ничего не путаю, нет синтаксиса для многострочных констант, поэтому прийдется переписать так:
document.write([
	'<style type="text/css">',
	'	.contentpaneopen a:link {',
	'		visibility:hidden;',
	'	}',
...
	'</style>'].join('\n'));

Вообще, подключение CSS-ов надо бы делать на стороне сервера - я так понимаю вы это в какой-нибудь главный шаблон добавляете, и будет этот скрипт болтаться где надо и где не надо.

Blizzart 21.02.2010 11:45

vk65535, спасибо :thanks:
Нет, в главный шаблон я это добавлять не буду, а добавил в страницу, на которую ведет эта ссылка.
Единственное, что я не понял, так как я нуб в JS, для чего нужно:
join('\n') :)
Нашел только, то что это добавляет значения в массив...

vk65535 21.02.2010 19:23

http://javascript.ru/Array/join


Часовой пояс GMT +3, время: 03:47.