Woocommerce - урать фокус на описание при открытии товава

nikonlay
На сайте с 11.12.2006
Offline
166
1301

Доброго дня всем! А подскажите, пожалуйста - у меня при открытии страницы отдельного товара почему-то автоматически фокус устанавливается на Описание.

То есть я кликаю на превью товара из каталога, ожидаю, что откроется страница с большим фото, а он при открытии товара перемещается сразу вниз, на описание, на /#tab-description. А чтобы увидеть фото товара и цену, и кнопку купить, нужно промотать вверх.

Подскажите, как сделать, чтобы просто открывалась страница товара, сверху, как обычно, без перемещения на описание?

PS У меня Woocemmerce, тема Storefront, никаких дополнительных плагинов не ставил, поэтому странно

Привожу сайт, чтобы понятно было, о чем речь: kawaipianos.ru/shop/

Попробуйте открыть любой товар и увидите, что происходит

nikonlay
На сайте с 11.12.2006
Offline
166
#1

Так что же, никто даже предположить не может, откуда эта ошибка?

Хотя бы где это искать - в настройках админки, или в файлах шаблона, или еще где-то?

jokerov
На сайте с 18.07.2008
Offline
102
#2
nikonlay:

Хотя бы где это искать

Ищите причину в файлах js. Если сами не найдёте, скидывайте ftp в личку - попробую помочь.

nikonlay
На сайте с 11.12.2006
Offline
166
#3

jokerov, перебрал сейчас почти все подключаемые к странице js файлы, но пока ничего не нашел.

Среди них есть всякие jquery, это понятно что не то.

На что обратил внимание, это файл smscrl.js:

$(document).ready(function(){

$('a[href^="#"]').on('click',function (e) {
e.preventDefault();

var target = this.hash,
$target = $(target);

$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
});
});

Но это вроде отвечает за плавную прокрутки при клике по ссылке с якорем, на счет #tab-description там вроде ничего нет.

И еще смотрел файл skip-link-focus-fix.min.js:

!function(){var a=navigator.userAgent.toLowerCase().indexOf("webkit")>-1,b=navigator.userAgent.toLowerCase().indexOf("opera")>-1,c=navigator.userAgent.toLowerCase().indexOf("msie")>-1;(a||b||c)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var a=document.getElementById(location.hash.substring(1));a&&(/^(?:a|select|input|button|textarea)$/i.test(a.tagName)||(a.tabIndex=-1),a.focus())},!1)}();

Вроде что-то про фокус как раз, но про #tab-description опять-таки там ничего не сказано

Так что пока продолжаю искать.

P.S. А вам именно доступ по фтп нужен, если что? Просто ведь js файлы по идее и так из браузера можно посмотреть в исходном коде?

jokerov
На сайте с 18.07.2008
Offline
102
#4

В браузере исходники смотрел, сразу ничего не нашел. Попробуйте отключать по одному файлу и смотреть на результат. Когда найдёте, нужно будет смотреть/отключать куски кода - таким образом получится узнать причину.

Sly32
На сайте с 29.03.2012
Offline
270
#5

вы запихнули описание в табы и видно где-то нарушили разметку

LEOnidUKG
На сайте с 25.11.2006
Offline
1678
#6

Тут это происходит:

http://kawaipianos.ru/wp-content/plugins/woocommerce/assets/js/frontend/single-product.min.js?ver=3.2.5

---------- Добавлено 07.12.2017 в 21:00 ----------

Там глупый список функций в функции, код для мазахистов.

Поэтому можно убрать условие:

||"#tab-reviews"===t

и больше ничего не трогать.

✅ Трастовых площадок под размещение статей и ссылок. Опыт 15 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Новый аналог AllSubbmitter (заполнение форм) https://getmanylinks.ru/getmanysubmits.html (Бесплатное демо)
nikonlay
На сайте с 11.12.2006
Offline
166
#7
jokerov:
отключать по одному файлу и смотреть на результат.

Ок, попробую. Главное ничего не сломать при этом )

Sly32, да я особо ничего не запихивал, я говорю, это стандарная тема Storefront, и описание я вставлял в поле "Описание" в создании товара, никаких настроек типа "отображать описание в табах" я не делал и там вообще вроде таких нет.

LEOnidUKG, спасибо за детальный подход!

Но пока не получилось правда - убрал это условие из файла http://kawaipianos.ru/wp-content/plugins/woocommerce/assets/js/frontend/single-product.min.js?ver=3.2.5 , но пока он по прежнему перебрасывает в товаре на #tab-description

---------- Добавлено 08.12.2017 в 10:30 ----------

LEOnidUKG, о, придумал тут "решение" на основе вашего совета. Поскольку удаление только ||"#tab-reviews"===t не помогало, я удалил весь кусок кода, в котором был этот кусочек:

.on("init",".wc-tabs-wrapper, .woocommerce-tabs",function(){e(".wc-tab, .woocommerce-tabs .panel:not(.panel .panel)").hide();var t=window.location.hash,i=window.location.href,o=e(this).find(".wc-tabs, ul.tabs").first();t.toLowerCase().indexOf("comment-")>=0||"#reviews"===t||"#tab-reviews"===t?o.find("li.reviews_tab a").click():i.indexOf("comment-page-")>0||i.indexOf("cpage=")>0?o.find("li.reviews_tab a").click():"#tab-additional_information"===t?o.find("li.additional_information_tab a").click():o.find("li:first a").click()})

Удалил весь этот кусок, и теперь заработало! Правда, наверное что-то другое от этого может перестать работать, но это уже не так важно, наконец-то хоть перестал фокус "прыгать" на это описание!

S
На сайте с 30.09.2016
Offline
469
#8

Никаких фокусов тут нет. Там переадресация такая работает. То есть после загрузки страницы скрипт ищет элемент ul class="tabs wc-tabs"

o=e(this).find(".wc-tabs, ul.tabs").first();
и делает клик по первой ссылке в этом элементе
o.find("li:first a").click()
В результате к урлу добавляется hash (#tab-description) и именно этот элемент и показывается на странице.
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий