[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как узнать текущую ссылку
Lightt
В общем есть сайт -
http://сайт/index.php#11
http://сайт/index.php#12
и т.д.

Ссылки меняются без перезагрузки.

Как можно поставить условие типа -


if (preg_match("/#13/", $_SERVER['REQUEST_URI'])) {
echo "1";
}


Michael
var hash = window.location.hash


_____________
There never was a struggle in the soul of a good man that was not hard
Lightt
Michael

Спасибо. Работает, но не совсем так как хотелось)
Можешь подсказать, как быть дальше, если у меня вот такая задача:


<a href="link1">link1</a>
<a href="link2">link2</a>

При нажатии на link1 ссылка становится http://сайт/index.php#11
При нажатии на link2 ссылка становится http://сайт/index.php#12

Как сделать, что бы hash тоже обновилась? Потому что до перезагрузки, она так и будет 11, несмотря на то, что должна уже быть 12
Michael
После нажатия по ссылке я проверил и хэш новый выдает. Мозилла.

_____________
There never was a struggle in the soul of a good man that was not hard
Lightt
Michael
Да, это скорей всего я, что то не так написал. Но все равно большое спасибо за помощь.

Теперь у меня другая проблема. Все это затевалось, с целью поменять meta. Но до ума довести, я свою идею так и не смог. Может кто подскажет как быть? Вот весь код.




<script type="text/javascript">
var
hash2 = "текст2";
var hash3 = "текст3";

var myHashchangeHandler = function(){
//alert(window.location.hash);

if (window.location.hash=="#11"){
//document.write(hash3);
<? $ff = "111"; ?>
}
else if (window.location.hash=="#9"){
//document.write(hash2);
<? $ff = "222"; ?>
}

}

if("addEventListener" in window) {
window.addEventListener("hashchange", myHashchangeHandler, false);
}
</script>
<meta
property='og:description' content='<?=$ff;?>' />


Теперь на всех страницах выводит 222.
bestxp
так ты мешаешь php и jquery, у тебя всегда ff = 222
Michael
PHP работает на сервере. Сформировало страницу, передало ее. Браузер начинает с ней работать.
В браузере смотришь исходный код - это точка старта для всех js скриптов. Дальше только они всем управляют.
А ты хочешь по событиям из браузера менять переменную php. Так не делается. Почитай основы сперва.

_____________
There never was a struggle in the soul of a good man that was not hard
sign63
Передай и Сделай проверку в пхп:

<?php
if (hash==11){
echo "<meta property='og:description' content='<?=$Varian1 ;?>' />";
}
elseif (hash==9){
echo "<meta property='og:description' content='<?=$Varian2 ;?>' />";
}


я так обычно html формирую

_____________
user posted image
Lightt
bestxp
Michael
Да это понятно. Непонятно, что дальше с этим делать.

Нашел вот такое решение


<script>
$(document).ready(function() {
$('meta').attr({
'content': 'тест'
});
});
</script>
<meta
property='og:description' content='Описание для поста' />


Firibag выдает, что значение изменилось на - тест, но в самом html ничего не меняется.

И соответственно, когда я нажимаю на соц. иконку контакта, передается значение - Описание для поста.


sign63
Не будет ведь работать, без перезагрузки страницы...
killer8080
Цитата (Lightt @ 13.03.2013 - 09:47)
Firibag  выдает, что значение изменилось на - тест, но в самом html ничего не меняется.

Не путай DOM и исходник страницы wink.gif
Lightt
killer8080
Так вывод какой? Что бы я не менял, так сделать не получится?
Michael
не получится. js не имеет отношения к формированию метатегов для поисковиков или чего тебе там надо.

_____________
There never was a struggle in the soul of a good man that was not hard
Lightt
Michael
Ок. Спасибо.
А если так сделать?


<script>
if
(window.location.hash=="#13"){
$('#ajax').load('test1.php');
};

if (window.location.hash=="#12"){
$('#ajax').load('test2.php');
};
</script>

<div
id="ajax">

</div>



Так оно, срабатывает, но только после перезагрузки страницы.
Можно поставить условие, которое будет обновлять только div id="ajax" ? Например каждые две секунды?
killer8080
Цитата (Lightt @ 13.03.2013 - 11:46)
Можно поставить условие, которое будет обновлять только div id="ajax" ? Например каждые две секунды?

setInterval(), только не забывай, что и нагрузка на сервер при этом то же возрастет.
Lightt
Только я уже отчаялся, и решил смириться, как в голову пришел новый вариант, и о чудо! Получилось именно то, чего я добивался)
Но радовался я не долго.

Код получился такой -

<script type="text/javascript">
var
myHashchangeHandler = function(){


if (window.location.hash=="#13"){
$('#ajax').load('test1.php');
}
else if (window.location.hash=="#12"){
$('#ajax').load('test2.php');
}
else if (window.location.hash=="#11"){
$('#ajax').load('test3.php');
}

}


if("addEventListener" in window) {
window.addEventListener("hashchange", myHashchangeHandler, false);
}
</script>

в test1.php тоже код


<script type='text/javascript'>
VK.init({apiId: 3411801, onlyWidgets: true});
VK.Widgets.Like('vk_like', {type: 'button', pageTitle: 'Февраль 2013', pageDescription: 'Описание'}, 20);
</script>

Все это, выглядит как надо, потому что в div есть параметр overflow: hidden;

Но на деле все выглядит совсем иначе - user posted image

Так как файл подгружается снова, то он встает наверх, и пользователи ничего не замечают, но в коде творится полный ужас.
Сильная нагрузка будет на сайт, если все так и оставить? И можно ли это как-то исправить?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.