Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   http://www.site.ru/#screenshots вставляя в браузер оказываюсь на главной странице( (https://javascript.ru/forum/dom-window/33538-http-www-site-ru-screenshots-vstavlyaya-v-brauzer-okazyvayus-na-glavnojj-stranice.html)

William Rast 27.11.2012 09:11

http://www.site.ru/#screenshots вставляя в браузер оказываюсь на главной странице(
 
http://www.site.ru/#screenshots вставляя в браузер оказываюсь на главной странице(
Находясь на сайте, кликаю на пункт меню и попадаю туда, но если указать линк другому человеку он попадает на главную страницу, ребята, как решить данную проблему?:(

William Rast 27.11.2012 10:22

ребята,технари,помогите блин,я по молюсь за вас!

Aetae 27.11.2012 10:48

Телепатия не абсолютна. Можно понять что сайт у вас на ajax и контент подгружается динамически без перехода.
Есть несколько вариантов решения проблемы с передачей ссылки.
1. mod rewrite на сервере.
2. просто переадресация на сервере.
3. работа с history на клиенте и двойная компановка вывода на сервере.(самый нормальный)
4. перехват location.hash на клиенте и подгрузка соответствующего контента.
5. ...
6. Profit!

Но что там у вас конкретно увы телепатия не говорит.

William Rast 27.11.2012 11:42

Код навигации по странице -

// Main Navigation
var FluidNav = {
	init: function() {
		$("a[href*=#]").click(function(e) {
			e.preventDefault();
			
			if($(this).attr("href").split("#")[1]) {
				FluidNav.goTo($(this).attr("href").split("#")[1]);
			}
		});
		this.goTo("home");
	},
	goTo: function(page) {
		var next_page = $("#"+page);
		var nav_item = $('nav ul li a[href=#'+page+']')
		$("nav ul li").removeClass("current");
		nav_item.parent().addClass("current");
		FluidNav.resizePage((next_page.height() + 40), true, function() {
			 $(".page").removeClass("current"); next_page.addClass("current"); 
		});
		$(".page").fadeOut(500);
		next_page.fadeIn(500);
		
		FluidNav.centerArrow(nav_item);
		
	},
	centerArrow: function(nav_item, animate) {
		var left_margin = (nav_item.parent().position().left + nav_item.parent().width()) + 24 - (nav_item.parent().width() / 2);
		if(animate != false) {
			$("nav .arrow").animate({
				left: left_margin - 8
			}, 500, function() { $(this).show(); });
		} else {
			$("nav .arrow").css({ left: left_margin - 8 });
		}
	},
	resizePage: function(size, animate, callback) {
		if(size) { var new_size = size; } else { var new_size = $(".page.current").height() + 40; }
		if(!callback) { callback = function(){}; }
		if(animate) {
			$("#pages").animate({ height: new_size }, 400, function() { callback.call(); }); 
		} else {
			$("#pages").css({ height: new_size }); 
		}
	}
};


полагаю, тут нужно что-то изменить , для того чтобы входящие ссылки работали.

danik.js 27.11.2012 12:44

this.goTo("home") -> this.goTo(location.hash.replace('#', '') || "home")

William Rast 27.11.2012 13:01

дружище, напиши свой номер телефона, я тебе денег кину
williamrast@mail.ru

William Rast 27.11.2012 14:11

только теперь у меня почему-то не открывается ссылка типа -
http://www.apple71.com/#mmp=ViewProductPage&mmpid=8164
весь js встает(
остальные вкладки работают.

danik.js 27.11.2012 18:46

this.goTo(location.hash.replace('#', '').split('&')[0] || "home")

danik.js 27.11.2012 19:04

Можно еще так сделать:
if (location.hash){ 
    $('a').each(function(){
       if (this.href.replace(location.origin, '') == location.href.replace(location.origin, '')) { $(this).click(); return false;}
    });
}

danik.js 09.12.2012 19:32

Цитата:

Сообщение от William Rast
дружище, напиши свой номер телефона, я тебе денег кину

Жду по сей день! Обещания надо выполнять! Спасибо хоть за плюс...

dmitriymar 09.12.2012 19:35

Цитата:

Сообщение от danik.js
Можно еще так сделать:

а можно ещё сделать так
https://github.com/DmitriyProvatorov...HTML5-HistoryX
P.s камнями не закидывайте -писалось за пару часов.
рабочий сайт с модулем http://tolstoy.kiev.ua/

danik.js 09.12.2012 21:51

На хабре есть статья про History (с большой буквы). Наверно тоже самое, только не за пару часов написанное.

dmitriymar 09.12.2012 22:04

Цитата:

Сообщение от danik.js
На хабре есть статья про History (с большой буквы). Наверно тоже самое, только не за пару часов написанное.

сначала читаем, потом комментируем.
Нет, абсолютно не то. Там про работу с History.

По поводу пары часов-тебя это волнует за сколько написано, если работает, да и тестилось несколько недель?


А в модуле, ты просто указываешь используемые корни сайта если они есть , и помечаешь ссылки по каким нужны действия соответствующим классом. И всё, знания js не нужны, тем более htm5 history api. Ни знания различий старых, новых браузеров и прочее.

А ну и забыл, и стрелки работают и даже в старых браузерах, и url ы автоматом преобразуются в зависимости от браузера

devote 11.12.2012 01:56

Цитата:

Сообщение от dmitriymar
а можно ещё сделать так
https://github.com/DmitriyProvatorov...HTML5-HistoryX

dmitriymar, а смысл было писать подобный костыль?

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

dmitriymar 14.12.2012 19:51

Цитата:

Сообщение от devote
dmitriymar, а смысл было писать подобный костыль?

что можно использовать без знаний вообще:)
Нет там изучения левых методов. Там вообще нет изучения методов как таковых
Есть одна строка добавляющаяся в код с двумя-тремя параметрами и всё
модуль -history для ленивых :)


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