|
|
|
| не пойму в какой кодировке править пользовательский скрипт.
, т.е я со страниц softtime.ru зашёл со строки меню
Tools -> quick preferences -> edit site preferences -> Scripting
и прописал для "User javascrippt files" папку C:\_FM\Opera_124\_my\softtime
положил туда такой скрипт softtime_ru.js
//по клику на тексте сообщения создаёт форму
re1=/\/read\.php\?id_forum=(\d+)&id_theme=(\d+)/;
if ( x_m1 = re1.exec(document.location)) {
x_cookie = document.cookie;
x_ar = (x_cookie) ? x_cookie.split(/; */): new Array();
//alert( x_ar )
x_user=''
x_pass=''
x_sid=''
for (z=0; z < x_ar.length; z++) {
x_temp = x_ar[z].split('=')
switch(x_temp[0]){
case 'current_author':
x_user =x_temp[1]
break;
case 'wrdp':
x_pass =x_temp[1]
break;
case 'PHPSESSID':
x_sid =x_temp[1]
break;
}
}
alert( x_user+'-'+x_pass+'-'+x_sid )
x_posts = document.getElementsByTagName("P")
for ( i=0; i<x_posts.length; i++) {
if (x_posts.className != "posttext") continue
x_posts[i].onclick = "answer_form(this)"
}
function answer_form(elmnt) {
re3=/<A\s+href=['"]?addpost\.php.+&id_post=(\d+)/
x_m3 = re3.exec(((elmnt.parentElement).parentElement).parentElement.lastChild.innerHTML)
if (!x_m3) return;
form_txt='\
<div style="border:solid 1px grey; width:80%">\
<form action="addpost.php" enctype="multipart/form-data" name="form" method="post">\
<input type="hidden" name="personally" value="">\
<input type="hidden" name="sid_add_theme" value="'+x_sid+'">\
Ваше имя:<br/>\
<input size="25" type="text" name="author" size="61" maxlength="100" value="'+x_user+'"><br/>\
Пароль:<br/>\
<input size="25" type="password" name="pswrd" size="61" maxlength="100" value="'+x_pass+'">\
<br/>\
<div class="blockremark"><p>\
<a href="#" onClick="javascript:tag(\"\", \"\"); return false;" >[b][/b]</a> \
<a href="#" onClick="javascript:tag(\"[i]\", \"\"); return false;" >[i][/i]</a> \
<a href="#" onClick="javascript:tag(\"[url]\", \"[/url]\"); return false;" >[url][/url]</a>\
</div>\
Сообщение:<br>\
<textarea class="input" style="padding-right: 10px;" cols="90" rows="15" name="message">\
</textarea><br/>\
Прикрепить:<br/>\
<input class="input" type="file" name="attach" size="82"><br/>\
<input class="button" type="submit" name="send" value="Отправить">\
<input type="hidden" name="id_theme" value="'+x_m1[2]+'">\
<input type="hidden" name="id_post" value="'+x_m3[1]+'">\
<input type="hidden" name="id_forum" value="'+x_m1[1]+'">\
</table></form></div>';
elmnt.insertAdjacentHTML ('afterEnd',form_txt)
} // end function
} //end if
|
и не могу получить русские надписи с полям формы
это вообще возможно , с помощью insertAdjacentHTML и не напрягая браузер перекодировкой ?
или подскажите как сделать пооптимальнее ?
//подсветка жестоко режет текст, если как php подсветить не php | |
|
|
|
|
|
|
|
для: heed
(29.08.2010 в 21:28)
| | не правится сообщение, там из цикла вырезало [i]
for ( i=0; i<x_posts.length; i++) {
if (x_posts[i].className != "posttext") continue
x_posts[i].onclick = "answer_form(this)"
} | |
|
|
|
|
|
|
|
для: heed
(29.08.2010 в 21:28)
| | похоже ни одна кодировка не подошла. 9.24 у меня опера
ну да ладно :) буду юзать с иностранными буквами
... не нашёл чем кроме insertAdjacentHTML вставить сразу большой кусок страницы
Извиняюсь за корявый код и если защемил какие-нибудь авторские права ,) просто мне так слегка удобнее юзать форум , и чуть-чуть экономичнее .
поулучшил код насколько смог :)
re1=/\/read\.php\?id_forum=(\d+)&id_theme=(\d+)/;
if ( x_m1 = re1.exec(document.location)) { //alert( x_m1[1]+'-'+x_m1[2])
//куки
x_cookie = document.cookie;
x_ar = (x_cookie) ? x_cookie.split(/; */): new Array();
x_user=''
x_pass=''
x_sid=''
for (z=0; z < x_ar.length; z++) {
x_temp = x_ar[z].split('=')
switch(x_temp[0]){
case 'current_author':
x_user =x_temp[1]
break;
case 'wrdp':
x_pass =x_temp[1]
break;
case 'PHPSESSID':
x_sid =x_temp[1]
break;
}
} //alert( x_user+'-'+x_pass+'-'+x_sid)
x_status = new Array();
document.body.onload="x_init()"
//функции
function x_init(){
//сообщения
x_temp= '';
x_posts = document.getElementsByTagName("P")
for ( x=0, z=0; x<x_posts.length; x++) {
if (x_posts[x].className != "posttext") continue
x_posts[x].onclick = "answer_form(this, "+z+")"
x_temp += '0,'
z++
}
x_status= x_temp.split(','); //alert( x_status )
}
function ins_tag(elm, ins_text) {
x_elm = elm.parentElement.nextSibling
if (ins_text == "quote") {
y_text = elm.parentElement.parentElement.parentElement.previousSibling.previousSibling.innerText
x_elm.value += '>[i]'+ y_text.replace(/\r\n/g, "") +'['+'/i]\n';
}
else {
var str = x_elm.value;
var start = x_elm.selectionStart;
var length = x_elm.selectionEnd - x_elm.selectionStart;
x_elm.value = str.substr(0, start) + '['+ins_text+']' + str.substr(start, length) +
'[/'+ins_text+']'+ str.substr(start + length);
}
}
function rm_form(elmnt, num) {
if (x_status[num] != '1') return;
elmnt.nextSibling.removeNode(true)
elmnt.removeNode(true)
x_status[num] = '0'
}
function answer_form(elmnt, x_num) {
if (x_status[x_num] != '0') return;
re3=/<A\s+href=['"]?addpost\.php.+&id_post=(\d+)/i
x_m3 = re3.exec(elmnt.parentElement.parentElement.nextSibling.innerHTML)
// alert(elmnt.parentElement.parentElement.nextSibling.innerHTML+'\n\n'+x_m3[1])
if (!x_m3) return;
form_txt = '\
<div style="border:solid 1px grey; width:100%; padding:5px 10px">\n\
<style>\n\
form h4 { float:left; background:#CCC; padding:2px 1ex; margin:2px; 0;\
border:double 3px #999; border-bottom:none;}\n\
textarea {padding:2px 10px; width:100%; margin-top:0;} \n\
input[type=submit] {margin:1ex 3em; font-size: 150%;}\n\
</style>\n\
<form action="addpost.php" enctype="multipart/form-data" name="x_form" method="post">\n\
<input type="hidden" name="personally" value="">\n\
<input type="hidden" name="sid_add_theme" value="'+x_sid+'">\n\
username:<br/>\n\
<input size="25" type="text" name="author" size="61" maxlength="100" value="'+x_user+'"><br/>\n\
password:<br/>\n\
<input size="25" type="text" name="pswrd" size="61" maxlength="100" value="'+x_pass+'">\n\
<br/>текст:\
<div>\
<h4 style="float:right; clear:both;" onclick="ins_tag(this, \'quote\')">[:quote:]</h4><br/><hr/>\
<h4 onclick="ins_tag(this, \'code\')">[:code:][:/code:]</h4>\
<h4 onclick="ins_tag(this, \'b\')">[:b:][:/b:]</h4>\n\
<h4 onclick="ins_tag(this, \'i\')">[:i:][:/i:]</h4>\n\
<h4 onclick="ins_tag(this, \'s\')">[:s:][:/s:]</h4>\n\
<h4 onclick="ins_tag(this, \'sub\')">[:sub:][:/sub:]</h4>\n\
<h4 onclick="ins_tag(this, \'sup\')">[:sup:][:/sup:]</h4>\n\
<h4 onclick="ins_tag(this, \'url\')">[:url:][:/url:]</h4>\n\
</div><textarea cols="90" rows="15" name="message">\n\
</textarea>\
<br/>\n\
file:<br/>\n\
<input class="input" type="file" name="attach" size="82"><br/>\n\
<input type="submit" name="send" value="Send">\n\
<input type="hidden" name="id_theme" value="'+x_m1[2]+'">\n\
<input type="hidden" name="id_post" value="'+x_m3[1]+'">\n\
<input type="hidden" name="id_forum" value="'+x_m1[1]+'">\n\
</form></div>\n';
elmnt.insertAdjacentHTML ('afterEnd',form_txt)
elmnt.insertAdjacentHTML('afterEnd' ,'<h2 onMouseUp="rm_form(this, '+
x_num+' )" style="padding:2px 1ex; background:darkred">Remove</h2>')
x_status[x_num] = '1'
} // end function
} //end if
| по возможности прислушаюсь к любым комментариям по поводу кода,) в javascript'е мало чего понимаю. | |
|
|
|
|
автор: .heed (24.02.2012 в 18:12)  4.3 Кб |
|
|
для: heed
(30.08.2010 в 18:16)
| | пофиксил но не очень .)
похоже elmnt.removeNode() больше нет в опере
предлагается что-то типа elmnt.parentNode.removeChild(elmnt)
по крайней мере в 12.00 alpha , если ставить её как версию для переносных носителей путь к user javascript можно сделать
просто "profile\scripts\user"
вместо например j:\P\Opera_x32\profile\scripts\user | |
|
|
|