Ошибка

Tapochek.net
Регистрация  · 
Имя: Пароль:  
 ·  Забыли пароль?

Проблемы с JavaScript

Тема закрыта
 
Автор Сообщение

LRN

Статус:info

Стаж: 13 лет

Сообщений: 143

Россия
Рейтинг

post 01-Мар-2013 20:21 [-]0[+]

Quote

Не

работает поиск (ни по трекеру, не по форуму).
Разделы просматриваются нормально, но при попытке просмотреть тред
что-то происходит с кодировкой (вместо кириллицы - чёрные юникодные
знаки вопроса; посмотрел сырцы страницы - там везде один и тот же
символ; если нужны будут скриншоты - сделаю).

Вот отчёт LibreJS:

LibreJS писал(а):



List of blocked JavaScript in
http://tapochek.net/posting.php?mode=newtopic&f=345

in attribute: onclick:top.location.href='bonus.php';;

in attribute: onsubmit:$(this).attr('action',
$('#search-action').val()); var txt=$('#search-text').val(); return
!(txt=='поиск...' || !txt);;

in attribute: onfocus:if(this.value=='поиск...') this.value='';;
onblur:if(this.value=='') this.value='поиск...';;

in attribute: ./login.php?logout=1

in attribute: onsubmit:return checkForm(this);;

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: #

in attribute: posting.php?mode=smilies

in attribute: onclick:bbcode.onclickQuoteSel();;
onmouseover:bbcode.refreshSelection(true);;
onmouseout:bbcode.refreshSelection(false);;

in attribute: onclick:transliterate(document.post.message, this);;

in attribute: #

in attribute: onclick:BBCyoutube();

in attribute: onclick:storeCaret(this);;
onfocus:storeCaret(this);;
onkeypress:if(use_kb) return decode(event);;
onkeyup:storeCaret(this);;
onselect:storeCaret(this);;

in attribute: posting.php?mode=smilies

in attribute: onclick:javascript:translit();;

in attribute: onclick:javascript:kb_rules();;

in attribute: onclick:javascript:kb_close();;

in attribute: onclick:javascript:kb_show();;

in attribute: onclick:javascript:kb_rules();;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onclick:return changeLetter(5);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onclick:return changeLetter(1);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onmouseup:return addl(this.value);;

in attribute: onclick:return changeLetter(2);;

in attribute: onclick:return undo();;

in attribute: onmouseup:return addl(this.value);;

in attribute: onclick:return clr();;

in attribute: misc.php?do=info&show=callback

http://tapochek.net/misc/js/jquery.pack.js?v=16

http://tapochek.net/misc/js/ui/jquery-ui-1.8.9.custom.min.js

http://tapochek.net/misc/js/ui/jquery.corner.js?v=16

http://tapochek.net/misc/js/ui/jquery.mousewheel.js?v=16

http://tapochek.net/misc/js/ui/jquery.scrollable.js?v=16

http://tapochek.net/misc/js/jquery.cluetip.js?v=16

$(document).ready(function() {
$('a.load-local').cluetip({local:true, cursor: 'pointer',showTitle:
true,arrows: true});
$('span[title]').cluetip({splitTitle: '|', arrows: true,
dropShadow: false, cluetipClass: 'jtip'});
$('a.load-local-menu').cluetip({local:true, activation: 'click',
cursor: 'pointer',showTitle: true,sticky: true, closePosition: 'title',
width: 500, height: 500, closeText: 'Закрыть', cluetipClass: 'jtip'});
});

http://tapochek.net/misc/js/jquery.rater.js?v=16

http://tapochek.net/misc/js/main.js?v=16

http://tapochek.net/misc/js/tools.tabs-1.0.1.js

http://tapochek.net/misc/js/bbcode.js?v=16

var postImg_MaxWidth = screen.width - 202;
var postImgAligned_MaxWidth = Math.round(screen.width/3);
var attachImg_MaxWidth = screen.width - 280;
var ExternalLinks_InNewWindow = '1';
var hidePostImg = false;

function copyText_writeLink(node)
{
if (!is_ie) return;
document.write('<p style="float: right;"><a class="txtb"
onclick="if (ie_copyTextToClipboard('+node+')) alert(\'Код скопирован в
буфер обмена\'); return false;" href="#">скопировать в буфер
обмена</a></p>');
}
function initPostBBCode(context)
{
initSpoilers(context);
initExternalLinks(context);
initPostImages(context);
}
function initPostImages(context)
{
var context = context || 'body';
if (hidePostImg) return;
var $in_spoilers = $('div.sp-body var.postImg', context);
$('var.postImg', context).not($in_spoilers).each(function(){
var $v = $(this);
var src = $v.attr('title');
var $img = $('<img src="'+ src +'" class="'+
$v.attr('className') +'" alt="pic" />');
$img = fixPostImage($img);
var maxW = ($v.hasCla…

var BB = {};
var BB_ROOT = "./";
var cookieDomain = ".tapochek.net";
var cookiePath = "/";
var cookieSecure = 0;
var cookiePrefix = "bb_";
var LOGGED_IN = 1;
var InfoWinParams = 'HEIGHT=510,resizable=yes,WIDTH=780';

var user = {
opt_js:
{"only_new":0,"h_flag":0,"h_av":0,"h_rnk_i":0,"h_post_i":0,"h_smile":0,"h_sig":0,"sp_op":0,"i_aft_l":0,"tr_t_ax":0},

set: function(opt, val, days, reload) {
this.opt_js[opt] = val;
setCookie('opt_js', $.toJSON(this.opt_js), days);
if (reload) {
window.location.reload();
}
}
}
var ajax = new Ajax('./ajax.php', 'POST', 'json');



http://tapochek.net/misc/js/glossy.js

function web_news() {
$web_news = $('#web_news');
$web_news.toggle();
if (!$web_news.data('loaded'))
ajax.web_news();
}
ajax.web_news = function() {
ajax.exec({
action : 'web_news'
});
};
ajax.callback.web_news = function(data){
$web_news = $('#web_news');
$('td', $web_news).html(data.html);
$web_news.data('loaded', 1);
};

var MarketGidDate = new Date();
document.write('<scr'+'ipt type="text/javascript" '
+'src="http://jsc.dt00.net/t/a/tapochek.net.15605.js?t='+MarketGidDate.getYear()+MarketGidDate.getMonth()+MarketGidDate.getDay()+MarketGidDate.getHours()

+ '" charset="windows-1251" ></scr'+'ipt>');

$(function(){
$('#cse-search-btn, #cse-search-btn-top').click(function(){
var text_match_input_id = $(this).attr('href');
var text_match = $('#'+text_match_input_id).val();
if (text_match == '') {
$('#'+text_match_input_id).addClass('hl-err-input').focus();
return false;
}
$('#cse-text-match').val( text_match );
$('#cse-submit-btn').click();
return false;
});

$('#quick-search').submit(function(){
var action = $('#search-action').val();
var txt = $('#search-text').val();
if (txt=='поиск...' || txt == '') {
$('#search-text').val('').addClass('hl-err-input').focus();
return false;
}
if (action == 'cse') {
$('#cse-search-btn-top').click();
return false;
}
else {
$(this).attr('action', action);
}
});
});

$(function(){
$('a.dl-stub').click(function(){
$('#dl-form').attr('action', this.href);
$('#dl-sid').val( getCookie('bb_sid') );
$('#dl-form').submit();
return false;
});
});

var bbcode = new BBCode(document.post.message);
var ctrl = "ctrl";

bbcode.addTag("codeB", "b", null, "B", ctrl);
bbcode.addTag("codeI", "i", null, "I", ctrl);
bbcode.addTag("codeU", "u", null, "U", ctrl);
bbcode.addTag("codeS", "s", null, "S", ctrl);

bbcode.addTag("codeQuote", "quote", null, "Q", ctrl);
bbcode.addTag("codeImg", "img", null, "R", ctrl);
bbcode.addTag("codeUrl", "url", "/url", "", ctrl);
bbcode.addTag("codeUrl2", "url=", "/url", "W", ctrl);

bbcode.addTag("codeCode", "code", null, "K", ctrl);
bbcode.addTag("codeList", "list", null, "L", ctrl);
bbcode.addTag("codeOpt", "*", "", "0", ctrl);
bbcode.addTag("codeImgA", function(e) { var v=e.value;
e.selectedIndex=0; return "img="+v }, "/img");
bbcode.addTag("codePoster", "poster", null, "P", ctrl);

bbcode.addTag("codeTh", "th", null, "T", ctrl);
bbcode.addTag("codeHR", "hr", "", "8", ctrl);
bbcode.addTag("codeBR", "br", "", "", ctrl);
bbcode.addTag("codeSpoiler", "spoiler", null, "", ctrl);

bbcode.addTag("fontFace", function(e) { var v=e.value;
e.selectedIndex=0; return "font=\""+v+"\"" }, "/font");
bbcode.addTag("codeColor", function(e) { var v=e.value;
e.selectedIndex=0; return "color="+v }, "/color");
bbcode.addTag("codeSize", function(e) { var v=e.value;
e.selectedIndex=0; return "size="+v }, "/size");
bbcode.addTag("codeAlign", function(e) { var v=e.value;
e.selectedIndex=0; return "align="+v }, "/align");

/* kb.js
* Last modified: 29.08.2005
* Description: JavaScript used by Russian Keyboard
* The script is compressed to reduce its size, look for the raw
version at http://prumysl.wz.cz/bb/
*/
var l_letter=new
Array('`','1','2','3','4','5','6','7','8','9','0','-','=','q','w','e','r','t','y','u','i','o','p','[',']','BackSpace','Shift','a','s','d','f','g','h','j','k','l',';',"'",'Enter','CapsLock','z','x','c','v','b','n','m',',','.','/','\\','Rus/Lat','Undo','

','Clear');var lb_letter=new
Array('~','!','@','#','$','%','^','&','*','(',')','_','+','Q','W','E','R','T','Y','U','I','O','P','{','}','BackSpace','Shift','A','S','D','F','G','H','J','K','L',':','"','Enter','CapsLock','Z','X','C','V','B','N','M','<','>','?','|','Rus/Lat','Undo','

','Clear');var r_letter=new
Array('ё','1','2','3','4','5','6','7','8','9','0','-','=','й','ц','у','к','е','н','г','ш','щ','з','х','ъ','BackSpace','Shift','ф','ы','в','а','п','р','о','л','д','ж','э','Enter','CapsLock','я','ч','с','м','и','т','ь','б','ю',…

if(isMOZ||isIE)document.write("Раскладка: <select name='decflag'
onchange='document.post.message.focus();'
style='font-size:10px;position:relative;top:2px'><option
value=0>Отсутствует<option value=1>Транслит<option value=2
selected>Традиционная</select><br />");

if(!(isOP7||isOP8))document.write('<input type="button"
name="dell" onmouseup="return delLetter();" width="80"
class="b80">');else document.write('<input type="button"
name="dell" width="80" class="b80" disabled="disabled">');

init();

(function(){var
j=115724,f=false,b=document,c=b.documentElement,e=window;function
g(){var a="";a+="rt="+(new
Date).getTime()%1E7*100+Math.round(Math.random()*99);a+=b.referrer?"&r="+escape(b.referrer):"";return

a}function h(){var a=b.getElementsByTagName("head")[0];if(a)return
a;for(a=c.firstChild;a&&a.nodeName.toLowerCase()=="#text";)a=a.nextSibling;if(a&&a.nodeName.toLowerCase()!="#text")return

a;a=b.createElement("head");c.appendChild(a);return a}function i(){var
a=b.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src","http://c.luxup.ru/t/lb"+j+".js?"+g());typeof

a!="undefined"&&h().appendChild(a)}function
d(){if(!f){f=true;i()}};if(b.addEventListener)b.addEventListener("DOMContentLoaded",d,false);else

if(b.attachEvent){c.doScroll&&e==e.top&&function(){try{c.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}d()}();b.attachEvent("onreadystatechange",function(){b.readyState==="complete"&&d()})}else

e.onload=d})();

function stopError(){return true;}
window.onerror = stopError;
var am_jq=0; if(window.jQuery){am_jq=1;}
var am_loc=escape(top.location.href.substring(0,255));
var am_ref=escape(document.referrer.substring(0,255));
var am_title;
try{am_title=encodeURIComponent(document.getElementsByTagName("TITLE")[0].innerHTML.substring(0,100));}catch(e){am_title="";}

var am_rand=Math.floor(Math.random()*10000);
var am_code_cu=document.createElement("script");
am_code_cu.type="text/javascript";
am_code_cu.src="http://am10.ru/code.php?type=cu&jq="+am_jq..."+am_title;

document.body.appendChild(am_code_cu);

document.write("<a href='http://www.liveinternet.ru/click'
target=_blank><img src='//counter.yadro.ru/hit?t16.2;r" +
escape(document.referrer) +
((typeof(screen)=="undefined")?"":";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))

+ ";u" + escape(document.URL) + ";" + Math.random() + "' border=0
width=88 height=31 alt='' title='LiveInternet: показано число просмотров
за 24 часа, посетителей за 24 часа и за сегодня'><\/a>")

(function(w, c) { (w[c] = w[c] || []).push(function() { try {
w.yaCounter7486462 = new Ya.Metrika({id:7486462, enableAll: true}); }
catch(e) { } }); })(window, "yandex_metrika_callbacks");

http://mc.yandex.ru/metrika/watch.js

List of accepted JavaScript in
http://tapochek.net/posting.php?mode=newtopic&f=345

LibreJS did not allow the execution of any script on this page: '
There may be no script on this page (check source, C-u)
The inline and on-page JavaScript code may not be free and/or
may not have proper license information and external scripts (if
present) may have been removed by default.
External scripts may not be free and/or may not have proper
licensing and are not part of the whitelist of free JavaScript
libraries.
Profile PM

Roman

Статус:info

Пол: Пол:Муж

Стаж: 15 лет

Сообщений: 156

Россия
Рейтинг

post 01-Мар-2013 20:38 (спустя 16 минут) [-]0[+]

Quote

Сделайте пожалуйста скриншоты.
Profile PM

LRN

Статус:info

Стаж: 13 лет

Сообщений: 143

Россия
Рейтинг

post 01-Мар-2013 23:04 (спустя 2 часа 25 минут) [-]0[+]

Quote

Пытался аттачнуть скриншот - форум запрещает png и jpg. В общем, смотри его тут - http://lrn.no-ip.info/other/cp1251_as_utf8.png

На главной, а также при ответе на сообщения, кодировка нормальная.

Впрочем - нет, не совсем. Я только недавно обновил один из своих
тредов - там
теперь смесь из двух кодировок. Мой текст - в UTF-8, а сайт - не понятно
в чём. На главной кодировка, если верить wget'у - cp1251, что не может
не вызывать недоумение. Но похоже, что это так. Если заставить Файрфокс
декодировать главную в UTF-8 (не смотря на то, что она в cp1251), то
результат аналогичный - чёрные вопросительные знаки.

Пытался заставить Файрфокс декодировать страницу как cp1251 -
безрезультатно (декодирует уже сам _результат_ неправильного
декодирования как cp1251 -> та же хрень, вид сбоку).

Не понимаю, почему только некоторые страницы от этого страдают, и почему
это начало происходить только после блокировки несвободного JS.
Profile PM

Roman

Статус:info

Пол: Пол:Муж

Стаж: 15 лет

Сообщений: 156

Россия
Рейтинг

post 04-Мар-2013 05:20 (спустя 2 дня 6 часов) [-]0[+]

Quote

Цитата:

Не понимаю, почему только некоторые страницы от этого страдают, и почему
это начало происходить только после блокировки несвободного JS.
А если разблокировать? В других браузерах нормально отображается?
Profile PM

LRN

Статус:info

Стаж: 13 лет

Сообщений: 143

Россия
Рейтинг

post 04-Мар-2013 23:42 (спустя 18 часов) [-]0[+]

Quote

Roman писал(а):

Цитата:

Не понимаю, почему только некоторые страницы от этого страдают, и почему
это начало происходить только после блокировки несвободного JS.
А если разблокировать? В других браузерах нормально отображается?
1) LibreJS работает только в Firefox -> пробовать в других браузерах нет смысла (там всё будет показывать как надо).
2) Если разблокировать, то тоже фигня получается. Вообще, я погуглил, и у похоже что это не только тут. Вот, у человек похожая проблема.
Ладно, пока тред не закрывай, я попробую написать разработчикам.
Profile PM

LRN

Статус:info

Стаж: 13 лет

Сообщений: 143

Россия
Рейтинг

post 07-Мар-2013 21:27 (спустя 2 дня 21 час) [-]0[+]

Quote

Порыл сырцы.
Проблема заключается в том, что функция onDetermineCharset получает только первый кусочек страницы, 512 байт.
Однако там первые 108 байт - заголовок:

Код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html dir="ltr">
потом ещё 35 байт

Код:

<head>
<!-- Advanced Meta Tags -->
далее 212 (в моём случае) байт ключевых слов

Код:

<meta name="keywords" content="бла бла бла" />
<meta name="description" content="бла бла бла" />
потом ещё 34 байта

Код:

<!-- Advanced Meta Tags [END] -->
потом title (который на форуме может быть очень длинным). В моём случае на title заканчиваются эти самые 512 байт.
А уже после title идёт

Код:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
о котором так долго и упорно говорили большевики.

Реализация nsIUnicharStreamLoaderObserver::onDetermineCharset() в LibreJS не находит charset в первых 512 байтах кода (ибо его там нет), и по умолчанию использует UTF-8 (что не делает никакой погоды - в случае если onDetermineCharset не реализован или кидает эксэпшн, Файрфокс всё равно использует UTF-8 по умолчанию).

Я поговорил с разработчиками Файрфокса. Они указали на тот факт, что спек был обновлён некоторое время назад, и что теперь лимит на определение чарсэта - 1024 байта. Сейчас сделали багрепорт, пофиксят, и через N дней у меня в Nightly всё будет работать.

Однако меня терзают смутные сомнения - а знал ли автор viewtopic.php об увеличении лимита до 1024 байта? Скорее всего какой-то не слишком осведомлённый товарищ просто решил влепить meta keywords и meta description ДО meta content.

Если это так, то проблема всё-таки на форуме (то, что meta content таки укладывается в новый лимит в 1024 байта - чистое совпадение; были бы title и description подлиннее, и keyword'ов побольше - и не хватило бы 1024 байт).

Дополнительным указателем на это может служить тот факт, что meta keywords и meta description закодированы cp1251, однако брузер-то на момент их чтения об этом не знает (ибо meta content ещё не пропарсил)! Почему обычно всё работает (и страница отображается в правильной кодировке) - хз, видимо у Файрфокса есть ещё какая-то особая, уличная магия. Но LibreJS к ней доступа не имеет, и может полагаться только на onDetermineCharset().
Profile PM

Roman

Статус:info

Пол: Пол:Муж

Стаж: 15 лет

Сообщений: 156

Россия
Рейтинг

post 08-Мар-2013 06:57 (спустя 9 часов) [-]0[+]

Quote

Проверяйте
Profile PM

LRN

Статус:info

Стаж: 13 лет

Сообщений: 143

Россия
Рейтинг

post 08-Мар-2013 13:28 (спустя 6 часов) [-]0[+]

Quote

Я Мы проверил проверили, работает.

Кстати, раз уж зашла речь об этом (ну, хотя бы название треда оправдаю оправдаем...), нет ли желания указать, какая под какой лицензией предоставляется JavaScript-код на страницах форума?
Profile PM
Показать сообщения:    
Тема закрыта

Текущее время: 12-Янв 23:17

Часовой пояс: GMT + 4



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы