bar'ометр — seo-плагин для Maxthon и FireFox

12
Коля Дубр
На сайте с 02.03.2005
Offline
153
#11
Alex Kirillin:
В Firefox'е весь русский текст показывается крокозябрами

WebByte, текст в Javascript нужно кодировать в юникод-эскейпах. Я это делаю при помощи PSPad Editor - выбираем "инструменты" -> "конверторы пользователя" -> "chars to unicode entities (cp1251)". В принципе, весь текст рекомендуют хранить в отдельном файле в locale, но, имхо, если заведомо ясно, что локализация нафиг не нужна, на это можно забить.

Подсветка ноиндекса, скорее всего, не работает. Firefox хранит innerHTML на основе сформированной DOM-модели. Поскольку тега noindex нет в спецификациях, он обрабатывается неправильно: в первых версиях фокса он становился братом всех своих (истинных) потомков, а теперь, похоже, вообще выбрасывается. Так что копать нужно в сторону кэша HTML: изучите, как работает встроенный подсветчик синтаксиса (при просмотре HTML-кода) или другие расширения, работающие с кодом страницы (например, валидатор HTML Tidy). Но работы там дофига.

добавлю: было бы неплохо сделать Ссылки на сайт · Ссылки на сайт по фразе ссылками, чтоб можно было хотя бы кликать средней кнопкой или с зажатым контролом (чтоб открывались во вкладке). Если подставлять ссылку не получается (помню, у меня была такая проблема), хотя бы в стиле напишите "cursor: pointer;", т.к. значение hand нет в стандартах и поддерживается оно только в IE.

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
WB
На сайте с 21.05.2004
Offline
36
#12
текст в Javascript нужно кодировать в юникод-эскейпах

Догадываюсь, но я обошелся указанием encoding="windows-1251" в заголовках xml файлов. К сожалению, не могу отловить баг с кодировкой - у меня отображает без кракозябр... Буду рыть, если что, последую твоему совету.

Подсветка ноиндекса, скорее всего, не работает

Куда ж она денется? :) Работает - я не по DOM модели ее разбираю именно по той причине, что тега нет в спецификации.

upd.

Гм. Только почему-то не всегда. На этом треде не хочет, хотя в других местах работает.

Коля Дубр
На сайте с 02.03.2005
Offline
153
#13
WebByte:
Работает

Ну, например, подписи на этом форуме заключены в NOINDEX. Когда пытаешься подсветить, ничего не происходит.

innerHTML строится на основе DOM-модели. Трудно сказать, бага это или фича, но оно так и есть. Убедиться можно так: открываем DOM Inspector, выбираем слева BODY, справа - JavaScript Object, выбираем свойство innerHTML, копируем значение в буфер, вставляем в блокнот, и пытаемся найти там noindex. Нет его там =)

Так что есть только два варианта: кривой - напрягать сервер, прямой - разбирать кэш HTML.

WB
На сайте с 21.05.2004
Offline
36
#14

Как убедиться я знаю. Проблема в том, что FireFox выносит <noindex> перед блочным элементом.

То есть такой код он оставит без изменения

<noindex><a>текст</a></noindex>

а такой

<noindex><div><a>текст</a></div></noindex>

переделает в

<noindex> </noindex><div><a>текст</a></div>

Метод борьбы я уже придумал, но он немного кривоват и не очень хочется его использовать :(

А что ты под доступом к кэшу имеешь ввиду?

Alex Kirillin
На сайте с 11.01.2004
Offline
105
#15
WebByte:
Операционка, версия Лисы и языки, установленные в системе, какие?

XP, 1.5, Кириллица, Китайское и Арабское что-то.

Александр Кириллин «Аладна» - Студия дизайна / Разработка сайтов (http://www.aladna.ru/) «Аладна» - Поисковая оптимизация / Продвижение сайтов (http://seo.aladna.ru/)
Коля Дубр
На сайте с 02.03.2005
Offline
153
#16
WebByte:
Проблема в том, что FireFox выносит <noindex> перед блочным элементом.

Ага, сейчас именно так. А вчера на работе лис его вообще игнорировал, хотя вроде бы версия одна и та же. Надо разобраться =)

WebByte:
А что ты под доступом к кэшу имеешь ввиду?

Ну, когда ты смотришь Page Source, например, там код отображается как есть, а не как его видит фокс после создания DOM-дерева. Я сам в суть реализации не вникал, но где-то на http://www.mozilla.ru/ на форуме говорили, что этот подсветчик синтаксиса достает код из кэша. Соответственно, есть 2 подзадачи:

1. Собственно, достать "правильный" код

2. Распарсить его и сопоставить его части с ДОМ-деревом

Затрудняюсь сказать, что сложнее, но обе задачи достаточно нетривиальны.

У второй задачи есть довольно убогое решение, а именно - в исходном коде заменить <noindex>..</noindex> на <DIV class="highilghted">..</div> с помощью тех же регулярных выражений, а потом просто установить свойство innerHTML корня в полученный результат. Но если подумать, можно сделать и покрасивее, мне так кажется.

WB
На сайте с 21.05.2004
Offline
36
#17
Коля Дубр:
Если подставлять ссылку не получается (помню, у меня была такая проблема)

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

Версии, появляющиеся между релизами, доступны по адресу http://bar.semaster.ru/beta/

WB
На сайте с 21.05.2004
Offline
36
#18
Alex Kirillin:
XP, 1.5, Кириллица, Китайское и Арабское что-то.

Попробуйте поставить бету в кодировке UTF-8. Где взять, написал выше.

WB
На сайте с 21.05.2004
Offline
36
#19
Коля Дубр:
1. Собственно, достать "правильный" код

Если сам файерфокс достает, то можно подсмотреть откуда. :)

Либо, как вариант, делать запрос через HttpRequest, но это трафик лишний :( И в обоих случаях DOM-модель может быть нарушена.. Либо можно замучаться, пытаясь ее построить самостоятельно.

У второй задачи есть довольно убогое решение

Убогое, но именно так оно сейчас работает в Макстоне и частично в Firefox. И честно говоря, не знаю, зачем искать какое-то другое

12

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