| | | | |
| |||||||
| Board-Support Wieso, Weshalb, Warum? Hilfe zum Forum und Fragen zur Funktionalität |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| Moderator Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Ich würde mir für das Forum einen solchen Mod wünschen, kenne das von SMF. Die Funktion ist einfach nur die, dass wenn ich anfang eine antwort zu tippen, aufs klo gehe/Telefon klingelt und dann weitertippe und abschicke ne kurze info sehe, dass schon ein oder mehrere neue Beiträge zu dem Thread vorhanden sind die in der Zeit erstellt wurden während ich getippert hab und der post halt noch nicht gemacht wird, sondern man wieder in der Antworten-Maske ist. Wünsch ich mir jetzt einfach mal so weil ich gerade Lust dazu habe ![]()
__________________ robo47.net - Blog, Codeschnipsel und mehr | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.705
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Manchmal reicht es schon, eine längere Antwort zu tippen und man hat 10 Leute vor sich. Das ganz sollte außerdem per Ajax laufen, sodass man sich nicht in zig Pagereloads verliert.
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” |
| | |
| | |
| Erfahrener Benutzer | Lässt sich auch clientseitig mit Ajax und der Greasemonkey-Erweiterung lösen. Hier ein Stück JS-Code, der Intervall der XMLHTTPRequests kann beim zweiten Parameter der setTimeout-Funktion festgelegt werden (Zeit in ms): Code: var beitraege=false;
var beitraegevorher=false;
var the_url = "";
var XMLHTTP2=null;
var wirdgeladen2=false;
if(window.XMLHttpRequest){
XMLHTTP2=new XMLHttpRequest();
}
function geladen2(){
if(XMLHTTP2.readyState==4){
wirdgeladen2=false;
var werte = unescape(XMLHTTP2.responseText);
beitraegevorher=beitraege;
var allposts = werte.match(/post_message_\d+/g);
beitraege=allposts.length;
if(beitraegevorher!=beitraege && beitraegevorher) {
var lastpostid = allposts[beitraege-1].match(/\d+/)[0];
var text = werte.match('<div id="post_message_'+lastpostid+'".*?>([\x00-\xFF]*?)</div>[\x00-\x20]*<!-- / message -->')[1];
var uname = werte.match('<div id="postmenu_'+lastpostid+'">[\x00-\x20]*<a.*?-->(.*?)</a>')[1];
var infoscreen=document.createElement("div");
infoscreen.setAttribute("class","dazugeladen");
infoscreen.setAttribute("style",'border:1px solid #444444;width:600px;padding:10px;margin-top:10px;');
document.getElementsByClassName("fieldset")[0].appendChild(infoscreen);
var elems = document.getElementsByClassName("dazugeladen");
var postcount = beitraege+(the_url.match(/-(\d+)\.html/)[1])*10-10;
elems[elems.length-1].innerHTML='#'+postcount+' - <b>'+uname+':</b><hr>'+text;
}
setTimeout(laden2,20000);
}
}
function laden2(){
var jetzt=new Date();
var a=jetzt.getTime();
if(wirdgeladen2){
XMLHTTP2.onreadystatechange=function(){};
XMLHTTP2.abort();
}
XMLHTTP2.open("GET",the_url+"&a="+a);
XMLHTTP2.onreadystatechange=geladen2;
wirdgeladen2=true;
XMLHTTP2.send(null);
}
if(document.getElementById("vB_Editor_001_textarea")&&document.location.href.match(/\/newreply\.php\?do=newreply/)){
the_url='http://www.php.de/'+document.getElementsByClassName("tborder")[0].innerHTML.match(/<a href="([a-z-]+\/\d+[a-z0-9-]+\.html#post\d+)">/)[1];
laden2();
}
Screenshot Geändert von Mati_ (25.08.2009 um 02:28 Uhr). |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| zwischenheit, swerscreen |