http://www.site.ru/#screenshots вставляя в браузер оказываюсь на главной странице(
http://www.site.ru/#screenshots вставляя в браузер оказываюсь на главной странице(
Находясь на сайте, кликаю на пункт меню и попадаю туда, но если указать линк другому человеку он попадает на главную страницу, ребята, как решить данную проблему?:( |
ребята,технари,помогите блин,я по молюсь за вас!
|
Телепатия не абсолютна. Можно понять что сайт у вас на ajax и контент подгружается динамически без перехода.
Есть несколько вариантов решения проблемы с передачей ссылки. 1. mod rewrite на сервере. 2. просто переадресация на сервере. 3. работа с history на клиенте и двойная компановка вывода на сервере.(самый нормальный) 4. перехват location.hash на клиенте и подгрузка соответствующего контента. 5. ... 6. Profit! Но что там у вас конкретно увы телепатия не говорит. |
Код навигации по странице -
// 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 }); } } }; полагаю, тут нужно что-то изменить , для того чтобы входящие ссылки работали. |
this.goTo("home") -> this.goTo(location.hash.replace('#', '') || "home")
|
дружище, напиши свой номер телефона, я тебе денег кину
williamrast@mail.ru |
только теперь у меня почему-то не открывается ссылка типа -
http://www.apple71.com/#mmp=ViewProductPage&mmpid=8164 весь js встает( остальные вкладки работают. |
this.goTo(location.hash.replace('#', '').split('&')[0] || "home")
|
Можно еще так сделать:
if (location.hash){ $('a').each(function(){ if (this.href.replace(location.origin, '') == location.href.replace(location.origin, '')) { $(this).click(); return false;} }); } |
Цитата:
|
Цитата:
https://github.com/DmitriyProvatorov...HTML5-HistoryX P.s камнями не закидывайте -писалось за пару часов. рабочий сайт с модулем http://tolstoy.kiev.ua/ |
На хабре есть статья про History (с большой буквы). Наверно тоже самое, только не за пару часов написанное.
|
Цитата:
Нет, абсолютно не то. Там про работу с History. По поводу пары часов-тебя это волнует за сколько написано, если работает, да и тестилось несколько недель? А в модуле, ты просто указываешь используемые корни сайта если они есть , и помечаешь ссылки по каким нужны действия соответствующим классом. И всё, знания js не нужны, тем более htm5 history api. Ни знания различий старых, новых браузеров и прочее. А ну и забыл, и стрелки работают и даже в старых браузерах, и url ы автоматом преобразуются в зависимости от браузера |
Цитата:
Есть нормальные библиотеки, проверенные временем. Не требующие изучения левых методов и прочей лабуды. |
Цитата:
Нет там изучения левых методов. Там вообще нет изучения методов как таковых Есть одна строка добавляющаяся в код с двумя-тремя параметрами и всё модуль -history для ленивых :) |
Часовой пояс GMT +3, время: 06:06. |