[Greasemonkey] Bilder im Forum einfügen

auberer

Grünschnabel
hallo liebe community.
bitte entschuldigt den etwas komischen titel.

aber ich habe folgendes problem. ich habe ein script, was eine zusätzliche leiste in jedem wbb-board einfügt(in dem falle smileys) und durch klicken auf diese werden die img-tags incl der bildurl eingefügt.
soweit so gut.

ABER das gleiche script, funktioniert NICHT in vbulletin-boards.
mein verdacht, das es an dem smiley.push liegt.
denn durch klicken auf das smiley passiert NICHTS.

jetzt werden einige sagen, das jeder admin smileys einfacher hinzufügen kann. nunja, nur ich bin kein admin in dem forum.

in dem beschribenen fall, benätigt man ja auch keinen vb-code für die smileys. denn es werden ja einfach nur dir vorgegeben grafiken eingefügt.

hier der code..(das sind die ersten zeilen:
Code:
smilies = new Array();
smilies.push(new Array("[ img]http://bildurl.de/images/smilies/crying.gif[ /img]","http://bildurl.de/images/smilies/crying.gif"));

if (document.location.href.indexOf('=messages') != -1) {
	function sort_smilies(a,b) { return b[0].length-a[0].length; }
	smilies.sort(sort_smilies);
	var messages = document.evaluate("//tr/th/input[2]/../../preceding::tr[1]/td[@colspan and @class='b']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
	for (var i = 0; i < smilies.length; i++) {
		var smiley = smilies[i][0];
		smiley = smiley.replace(/\\/g,"\\\\");
		smiley = smiley.replace(/\[/g,"\\\[").replace(/\]/g,"\\\]");
		smiley = smiley.replace(/\(/g,"\\\(").replace(/\)/g,"\\\)");
		smiley = smiley.replace(/\{/g,"\\\{").replace(/\}/g,"\\\}");
		smiley = smiley.replace(/\./g,"\\\.").replace(/\+/g,"\\\+").replace(/\*/g,"\\\*").replace(/\?/g,"\\\?");
		smiley = smiley.replace(/\^/g,"\\\^").replace(/\$/g,"\\\$").replace(/\|/g,"\\\|").replace(/\-/g,"\\\-");
		var expression = new RegExp("(^|[^\"'])"+smiley+"([^\"']|$)","gi");
		for (var j = 0; j < messages.snapshotLength; j++) {
			var thisMessage = messages.snapshotItem(j);
			thisMessage.innerHTML = thisMessage.innerHTML.replace(expression,"$1<img src='"+smilies[i][1]+"' alt='"+smilies[i][0]+"' border='0' />$2");
		}
	}
} else {
	var script = document.createElement('span');
	script.innerHTML = '<script type="text/javascript" language="javascript">function addSmiley(smiley) { var message = document.getElementsByName("text")[0]; var str = " " + smiley; message.focus(); var start = message.selectionStart; var starttext = message.value.substring(0,start); var endtext = message.value.substring(message.selectionEnd,message.textLength); message.value = starttext + str + endtext; start += str.length; message.selectionStart = start; message.selectionEnd = start; message.focus(); }</script>';
	var form = document.getElementsByTagName('form')[0];
	form.parentNode.insertBefore(script,form);
	var table = document.evaluate("//textarea/ancestor::table[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;
	var row = document.createElement("tr");
	var cell = document.createElement("th");
	cell.setAttribute("colspan","2");
	row.appendChild(cell);
	table.appendChild(row);
	for (var i = 0; i < smilies.length; i++) {
		cell.innerHTML += "<a href=\"javascript:addSmiley('"+smilies[i][0]+"')\"><img src='"+smilies[i][1]+"' alt='"+smilies[i][0]+"' border='0' /></a> ";
	}
}


ich hoffe, ihr könnt mir helfen. danke im vorraus
 
Moin,

und Willkommen an Board :)
der Titel passt schon (Schön wäre aber, wenn du ab und zu an geeigneter Stelle einen Grossbuchstaben in den Text einstreuen könntest ;))

@Topic:
die <textarea>'s haben bei vbulletin das name-Attribute "message"...in deinem Script steht aber "text".

Code:
var message = document.getElementsByName("text")[0];

Wenn du das so änderst, passiert was beim Klick:
Code:
var message = document.getElementsByName("message")[0];
 
danke für deine schnelle antwort. naja ich bin da normal einer der nur klein schreibt, so kann man schneller schreiben :)


mh habe "text" in "message" geändert.
jedoch leider keine veränderung.. durch anklicken der grafiken(smileys) wird im textarea nichts eingefügt.:confused:

@maik? es gibt PN´s und schikanieren lassen muss ich mich nicht.
 
Zuletzt bearbeitet:
danke für deine schnelle antwort. naja ich bin da normal einer der nur klein schreibt, so kann man schneller schreiben ^^
Dann nimmst du hier halt einen Gang raus, oder kümmerst dich um Nachhilfe, um deine Schlaganzahl beim Tippen zu erhöhen :rolleyes:

Unser Forum ist kein Chatroom. Kurz-Beiträge ("Ein-Zeilen Postings"), die einfach so ins Forum "geklatscht" werden, werden ohne Vorwarnung von einem Moderator oder Administrator gelöscht. Das gleiche gilt insbesondere für Beiträge, die in Rechtschreibung, Satzbau und Verständlichkeit nicht ein vernünftiges, allgemein übliches und altersgruppen-übergreifendes Niveau erfüllen. Jugendsprache, regional verbreitete Dialekte und durchgehend kleingeschriebene Beiträge sind ebenfalls unerwünscht. Mit anderen Worten: wer erfolgreich die im Deutsch-Unterricht erlernten Kenntnisse praxisnah auf unserem Forum anwenden kann, wird nicht mit dieser Regel in Konflikt kommen. "Wiederholungstäter" werden, nachdem sie zuvor von einem Moderator auf die Mängel hingewiesen wurden, ggf. unbefristet gesperrt.


Mit deiner Registrierung hast du unserer Netiquette zugestimmt.

mfg Maik
 
Der Ton macht nicht nur die Musik, sondern ist zumeist auch bei der Hilfestellung zur Lösung der Frage hilfreich. ;)
Getreu dem Motto: Gibst du dir keine Mühe, geb ich mir auch keine.
 
@maik? es gibt PN´s und schikanieren lassen muss ich mich nicht.
Wenn du meinen Tipp als Schikane betrachtest, muß ich mich ernsthaft fragen, mit welchem Bewußtsein du durch das Leben wandelst, und mit welchen Augen du deine Umwelt wahrnimmst.

Dann nimmst du hier halt einen Gang raus, oder kümmerst dich um Nachhilfe, um deine Schlaganzahl beim Tippen zu erhöhen :rolleyes:

Unser Forum ist kein Chatroom. Kurz-Beiträge ("Ein-Zeilen Postings"), die einfach so ins Forum "geklatscht" werden, werden ohne Vorwarnung von einem Moderator oder Administrator gelöscht. Das gleiche gilt insbesondere für Beiträge, die in Rechtschreibung, Satzbau und Verständlichkeit nicht ein vernünftiges, allgemein übliches und altersgruppen-übergreifendes Niveau erfüllen. Jugendsprache, regional verbreitete Dialekte und durchgehend kleingeschriebene Beiträge sind ebenfalls unerwünscht. Mit anderen Worten: wer erfolgreich die im Deutsch-Unterricht erlernten Kenntnisse praxisnah auf unserem Forum anwenden kann, wird nicht mit dieser Regel in Konflikt kommen. "Wiederholungstäter" werden, nachdem sie zuvor von einem Moderator auf die Mängel hingewiesen wurden, ggf. unbefristet gesperrt.


Mit deiner Registrierung hast du unserer Netiquette zugestimmt.

mfg Maik
Wie gesagt, mit deiner Registrierung hast du unsere Forenregeln akzeptiert, und darfst dich nicht wundern, nachdem du Svens Bitte ignoriert hast, von einem Moderatorenkollegen (in diesem Fall bin ich hier nun der pöööhse Mod auf seinem hohen Roß) mit Nachdruck darum gebeten wirst, auf die erwünschte Groß- und Kleinschreibung zu achten.

Unsere Community legt nunmal Wert auf die Pflege der deutschen Rechtschreibung.

Wenn dir diese Meßlatte nicht zusagt, steht es dir frei, dich in einer anderen Forengemeinde häuslich einzurichten, wo diese Wertmaßstäbe keine Rolle spielen.

mfg Maik
 

Neue Beiträge

Zurück