• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

Javascript lernen

DeletedUser

Gast
Ich glaube mit den befehlen würde ich mich schon zurecht finden (hab ja genug scripte wo ich mir was abschauen kann, bei mir scheiterts irgendwie am raus finden wie ich bestimmte teile einer seite ändere.
wie kann ich z.b. eine Spalte in der Gruppenübersicht zusammenzählen? also wie eine ausgewählte spalte?

Weißt du nicht, wie du auf den Inhalt der Spalte zugreifen kannst, oder wie du die Werte zusammenzählen kannst?
 

DeletedUser

Gast
GM ist ein Plugin für FireFox, welches API-Funktionen(GM_get/setValue, um Werte dauerhaft zu speichern) anbietet und JavaScript-Code auf eingestellten Seiten ausführen lässt. Im Grunde genommen JS=>wird vom Webseiten-Autor eingebaut, GM=>wird vom Seitenbesucher eingebaut und soll die Webseite um Funktionen erweitern.

Ist denn der Unterschied zwischen GM Befehlen und Javascript absehbar, bzw wieviele GM-Befehle gibt es denn so ca.?

Kann man GM Script quasi automatisch, wenn man Javascript beherrscht, oder sind das auch wieder zwei Paar Schuhe?
 

-=liro=-

Gast
GM ist eine Erweiterung für JavaScript, d.h. dass man JS-Befehle auch in GM-Scripten benutzen kann.
GM-Scripte haben einnen Grundaufbau, an dem man sich auch halten sollte

Code:
// ==UserScript==
// @name Ein GM-Script
// @namespace http://meine.webseite.de/
// @description Beschreibung
// @version 0.1
// @include http://irgendwas*
// @exclude http://irgendwas2*
// ==/UserScript==

(function () {
var eineVariable = "TEST";
alert("TestVariable: " + eineVariable);
})();

zwischen "(function () {" und "})();" kommt dann der Code hin
 

DeletedUser

Gast
Wobei das function () {...}();vollkommen überflüssig ist ;-)
 

DeletedUser

Gast
nicht dann, wenn man sauber arbeiten will und nicht den Globalennamensbereich vollmüllen will
Hm, ich würde es nicht als sauber sehen, wenn man eine überflüssige Funktion erstellt.
GM hat einen eigenen Namenraum o_O (falls man das in JS wirklich so nennt)
 

DeletedUser

Gast
Gibt es eigentlich eine liste wo man die Variablen findet die man brauch um scripte zu schreiben habe schon auf Safe HTML geschaut aber da steht da drüber auch nichts wer nett wenn jemand von euch helfen kann.
 

DeletedUser88169

Gast
Hiho,
jetzt nur mal so ein Buchtipp in den Raum geschmissen.
Es handelt sich um Javascript für Kids klingt zwar kindisch ist aber für erwachsene auch gut geeignet.
Ich habe selbst 3 Bücher dieser Reihe (Dieses zwar nicht, aber ich glaube es ist auch gut) und bin echt begeistert.
Also ihr könnt es euch ja zu Weihnachten holen. :)

m.f.g.
JaRoSchm
 

DeletedUser110360

Gast
Jo, kann ich auch nur empfehlen. Wir haben schon mehrere Bücher aus der "für KIDS"-Reihe, die sind für einen geführten Einstieg genial.

Die Frage nach den "Variablen" kann man so ohne weiteres nicht beantworten. Aber wenn Du Greasemonkey installierst, hast Du Zugriff auf das DOM (Datenmodell) des Firefox. Öffne dazu einfach den DOM_Inspector und sieh Dir dazu auch die Doku in http://de.selfhtml.org/javascript/ an. Dort findest Du auch alle Methoden beschrieben, die GM auf JS anbietet. Die Beispiele sind auch nett, da kannst Du gut den Zusammenhang zwischen HTML und JS sehen (wie zu Beginn des Thread schon erwähnt).
 

DeletedUser

Gast
Theoretisch - Praktisch

Hallo, zusammen!

Das ist ja alles schön und gut, aber wie wendet man das in der Praxis an?

Nehmen wir an, ich möchte für DS ein kleines Probescript schreiben. Darin soll einfach nur "DS ist cool" unter der Übersicht stehen.
Aber wie mache ich das dann, dass der text dann unter der Übersicht erscheint?
Ja, theoretisch mit
Code:
document.write("DS ist cool");

aber praktisch?
So was ähnliches habe ich schon probiert, aber der zeigt rein gar nix an...kann mir jemand helfen?
 

DeletedUser

Gast
PHP:
// ==UserScript==
// @name Test
// @include http://de*.die-staemme.de/game.php*screen=overview_villages*
// ==/UserScript==



// Möglichkeit 1
//--------------

// Text erzeugen
var textknoten = document.createTextNode('DS ist cool');

// Text in die Seite einfügen (innerhalb des <body> Elements am Ende anfügen)
document.body.appendChild(textknoten);






// Möglichkeit 2
//--------------

// HTML Code des <body> Elements "holen"
var althtml = document.body.innerHTML;

// Text an Code anfügen
var neuhtml = althtml + 'DS ist auch mit innerHTML cool!'

// Neuen Code einfügen
document.body.innerHTML = neuhtml;
Am besten du schaust die einzelnen Funktionen bei SelfHTML oder i-wo anders nach, dann verstehst du den Code denke ich i-wann ;)


Mit document.write kannst du in Userscripts kaum etwas anfangen.
 

DeletedUser

Gast
Hi,
kleiner Tipp von mir ich bring mir zurzeit HTML + CSS selbst bei.

Ich kannn nur sagen ich benutze Phase 5 als Editor und lese dazu das Tutorial auf SELFHTML.

Ich komme gut zurecht damit, auch wegen den vielen Beispielen. Besonders anschauen sollte man sich die Verweise, z.T. steht da viel interresantes. Und auch die Einführung lesen, auch wenns langweilig vorkommt.

Also da ichs mir selbst beibringe, kann ich sagen das man mit dem oben genannten gut bedient ist. Und kompetente Hilfe von netten Leuten auf konkrete Fragen bekommt man im Chat von GFX-Dose (http://forum.postopus.de/wbbnew/index.php?page=IrcChat).

Soviel von mir hoffe das Hilft euch erstmal weiter. Last but not least, lernt erst HTML + CSS, dann könnt ihr besser mit JavaScript anfangen, da schon ein paar Grundlagen da sind, ich wollte auch einfach so JavaScript lernen, aber so wie ichs jetzt mach ist es einfacher.

mfg
MST1
 

DeletedUser

Gast
Danke

@C1B1SE: danke! Das hat mir weitergeholfen xD


@MST1: da kann ich nur zustimmen! ich kann html, Css und auch noch PHP, da wird das ganze noch einfacher xXD
 

DeletedUser

Gast
Noch ne Frage^^

Also, ich hab da noch ne Frage:

Welchen Code muss ich verwenden, dass der Text 'Ds ist cool' (um aufs vorige BSP zurückzukommen^^) an einer bestimmten Stelle (beispielsweise unterhalb des Login-Buttons) erscheint?
 

DeletedUser

Gast
Ich finde die erste Methode besser daher zeige ichs dir damit:
PHP:
// ==UserScript==
// @name           Test
// @namespace      c1b1.de
// @include        http://www.die-staemme.de/
// ==/UserScript==


// Textknoten erzeugen
var textNode = document.createTextNode('DS ist cool');

// Loginbutton im DOM "finden", hier einfach, da der Button eine eindeutige ID hat, lässt sich am einfachsten mit Firebug Addon rausfinden
var button = document.getElementById('login-btn-input');

// Knoten nach dem Button finden
var nextNode = button.nextSibling;

// Elternknoten finden
var parentNode = nextNode.parentNode


// Text in die Seite einfügen
parentNode.insertBefore(textNode,nextNode);



/* Die Methode funktioniert folgendermaßen:

  Elterknoten . insertBefore ( einzufügenderKnoten , vordiesemKnoten )

  Beispiel:

  <div><b id="something">Text</b><u>Text2</u></div>

  div wäre der Elternknoten
  b wäre der Knoten nach dem es eingefügt wird
  u wäre der nextNode den man für insertBefore braucht, entspricht also b.nextSibling

  var textNode = document.createTextNode('DS ist cool');
  var b = document.getElementById('something');
  var u = b.nextSibling;
  var div = u.parentNode;
  div.insertBefore(textNode,u)

  ergäbe dann

  <div><b>Text</b>DS ist cool<u>Text2</u></div>

*/

Edit:
In dem Fall erscheint der Text trotzdem vorne dran.
Liegt am CSS float.
Schaut man sich die Struktur mit Firebug an, sieht man, dass der Text im HTML aber nach dem Button steht.
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Cool, danke!

Ist es auch möglich, einen beliebigen Text (zum Beispiel die Menge an Holz) als Variable zu speichern?

Also zum BSP:


Code:
var Holz = /*keine Ahnung wie der Code halt aussieht/*;
var Lehm = /*siehe Oben^^ /*;

var Ressies = Holz + Lehm;

// Text erzeugen 
var textknoten = document.createTextNode(Ressies); 

// Text in die Seite einfügen (innerhalb des <body> Elements am Ende anfügen) 
document.body.appendChild(textknoten);


Wäre das möglich?
 
Zuletzt bearbeitet von einem Moderator:

TimLim

Gast
Cool, danke!

Ist es auch möglich, einen beliebigen Text (zum Beispiel die Menge an Holz) als Variable zu speichern?

Also zum BSP:


Code:
var Holz = /*keine Ahnung wie der Code halt aussieht/*;
var Lehm = /*siehe Oben^^ /*;
var Ressies = Holz + Lehm;

// Text erzeugen 
var textknoten = document.createTextNode(Ressies); 

// Text in die Seite einfügen (innerhalb des <body> Elements am Ende anfügen) 
document.body.appendChild(textknoten);


Wäre das möglich?
vorab:
Kommentare werden so gemacht:
PHP:
/* BLA BLA */


Code:
var Holz = document.getElementById('wood');
var Lehm = document.getElementById('stone');

var Ressies = parseInt(Holz) + parseInt(Lehm);

// Text erzeugen 
var textknoten = document.createTextNode(Ressies); 

// Text in die Seite einfügen (innerhalb des <body> Elements am Ende anfügen) 
document.body.appendChild(textknoten);
 
Oben