# JS - Umschreiben und erweitern ?



## Thund3r (7. Aug 2010)

Hallo,
Ich habe kentnisse in HTML und blicke dadurch einigermaßen bei css und php durch.
Folgenses script hab eich gefunden und schon teilweise umgeschriben jetzt will mozilla zbw. Greasmokey das nicht annehmen...
Jundet ihr einen fehler? (kann es sein das die in html geschribene zeile am stück sein muss damit die befehle richtig übernommen werden?)


```
var village = unsafeWindow.village;

var LinkDiv = document.createElement('div');
LinkDiv.id = 'LinkDiv';
LinkDiv.innerHTML += '<tr><td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=main">HauptgebÃ€ude </a>|</td>
                          <td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=stable"> Stall </a>|</td>
                          <td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=barracks"> Kaserne </a>|</td>
                          <td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=market"> Markt </a>|</td>
                          <td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=garage"> Werkstatt </a>|</td>
                          <td><a href="http://de61.die-staemme.de/game.php?village='+village+'&screen=smith"> Schmiede</a></td></tr>';
document.getElementById('header_info').appendChild(LinkDiv);
```


----------



## Thund3r-01 (7. Aug 2010)

Wobei mir gerad eauffällt das der zeilenumbruch eigentlich keine auswirkungen auf die tags haben sollte...

Dann noch ne frage zu dem editor:
Ich benutze im Phase (5.2) der ist eher für html da er die java tags ignorir
und im internet ist nur verwirrung zu finden 

Brauche ich für Windows 7 das SDK oder JDK
und welche editor ist gut für anfänger 
(hatte damals in der schule den von java) 

Links für tuts und downloads währen nett 

danke im vorraus schonmal!


----------



## Atze (7. Aug 2010)

hm, ich glaube du verwechselst da wirklich java und javascript!  oder irre ich mich? du willst ein javascript skript bearbeiten, oder?
das kannst du mit jedem texteditor. manche unterstützen auch syntaxhighlighting, wie zB notepad++.

Notepad++ | 5.7

für javascript benötigst du kein jdk/sdk. das sind die entwicklungswerkzeuge und laufzeitumgebungen für die programmiersprache java! 

korrigier mich, wenn ich dich falsch verstanden habe


----------



## Thund3r-02 (7. Aug 2010)

Hast es schon richtig aufgefasst!
Ich will das script bearbeiten, aber auch den editor haben um sowas dann auch selber schreiben zu können 

bzw. ich will java erlernen und das script überarbeiten (wissen ob da ein fehler ist..?)


----------



## XHelp (7. Aug 2010)

Du erlernst ja eine (Script)Sprache nicht mit einem Editor.
Zu deiner Frage: verwende 
	
	
	
	





```
.html()
```
 Methode.


----------



## Thund3r (7. Aug 2010)

okay danke...

Habe mich mal angemeldet habe das gefühl ich werde öffters dumme fragen stellen xD

und das nächste 

```
var gebaudepunkte = new Array();
1 gebeudepunkte['church_f'] = new Array(10);
2 gebeudepunkte['church'] = new Array(10,2,2);
```

und zwar will ich es so "programiren" das er 2 verwenden soll wenn 1 nicht da ist 
denn ich habe gerade das problem das wenn diese tags nicht drin sind funktionirt das script 
zeigt aber nicht bei den gewünschen gebeuden die ich nachtagen will nichts an 
schreibe ich die tags aber rein ist das ganze skrip inaktiv


----------



## XHelp (7. Aug 2010)

Ich glaube in JavaScript ist ein Array wirklich ein Array (nicht wie bei php), d.h.: 
	
	
	
	





```
gebeudepunkte['church_f']
```
 ist ungültig, müsstest dann 
	
	
	
	





```
gebeudepunkte[0]
```
 machen.


----------



## Thund3r (7. Aug 2010)

also


```
var gebaudepunkte = new Array();
1 gebeudepunkte[0]['church_f'] = new Array(10);
2 gebeudepunkte['church'] = new Array(10,2,2);
```
oder wie? 

habs gerade mal gemacht das script ist wieder tot es ging gerade mit beidem drinne hat dann einfach nur nix angezeigt


----------



## XHelp (7. Aug 2010)

nein:

```
var gebaudepunkte = new Array();
gebeudepunkte[0] = new Array(10);
gebeudepunkte[1] = new Array(10,2,2);
```
Und da es schon 2 mal auftaucht: was sind "1" und "2" am Anfang der Zeilen?


----------



## Thund3r (7. Aug 2010)

Das war um um zu erkläre was geschehen sol keione panik im quelltext ist es nicht xD 
mhm funktionirt auch nicht ist wieder tot...
ganz vergessen zu sagen das ding ist was länger


```
gebaudepunkte['main'] = new Array(10);
gebaudepunkte['barracks'] = new Array(16);
gebaudepunkte['stable'] = new Array(20);
gebaudepunkte['garage'] = new Array51);
gebaudepunkte[0]['church_f'] = new Array(10);
gebaudepunkte[1]['church'] = new Array(10,2,2);
```


aber trozdem danke!


----------



## XHelp (7. Aug 2010)

Du benutzt doch wieder Wörter als Index... Benutze ausschließlich zahlen. Ein Array ist keine Map! 
	
	
	
	





```
irgendeinarray['HIERIRGENDEINETEXT']
```
 geht nicht! (imho)


----------



## Thund3r (7. Aug 2010)

Es ist eine erweiterung für ein online game und der zieht die punkte wo er die zahel einfüht aus dem link bzw. aus einem bestimtet wort und das sind diese ;(


----------



## XHelp (7. Aug 2010)

öhm... bitte was?
Bist du sicher, dass die Variable ein Array ist und kein 
	
	
	
	





```
Object
```
?


----------



## Atze (7. Aug 2010)

SELFHTML: JavaScript / Objektreferenz / Array

bringt wie dort schon steht aber nicht nur gutes!


----------



## Thund3r (7. Aug 2010)

allso alles mit [0] und bzw. [1] bestimmen?

sprich:


```
var gebaudepunkte = new Array();
gebaudepunkte[0] = new Object();
gebaudepunkte[0]['main'] = new (10);
gebaudepunkte[0]['barracks'] = new (16);
gebaudepunkte[0]['stable'] = new (20);
gebaudepunkte[0]['garage'] = new (51);
gebaudepunkte[0]['church_f'] = new (10);


gebaudepunkte[1] = new Object();
gebaudepunkte[1]['church'] = new (10,2,2);
```

:question:


----------



## XHelp (7. Aug 2010)

Der Ansatz ist schon nicht verkehrt, aber was soll 
	
	
	
	





```
new (10)
```
 sein?


----------



## Thund3r (7. Aug 2010)

Ich versuche es zu erleutern ansonsten schmeiße ich den quelltext mal rein.
und zwar sucht das script den namen vom gebeute kann dan anhand der stufe des gebeudes (die im namen enthalten ist)
die jeweiligen punkte angeben die es beim ausbau denn dem Accopunt zuführ.


----------



## Thund3r (7. Aug 2010)

Ich will ja jetzt nimanden aufhetzen aber wenn ich du währe würde ich mich jetzt schlagen ich glaube ich habe das problem gefunden weiss nur nicht wie man es raus schreibt bzw. umschreibt xD

Edit: soll ichs heute noch nachfrage oder willst du lieber in ruhe pennen xD


----------



## XHelp (7. Aug 2010)

Thund3r hat gesagt.:


> und zwar sucht das script den namen vom gebeute kann dan anhand der stufe des gebeudes (die im namen enthalten ist)
> die jeweiligen punkte angeben die es beim ausbau denn dem Accopunt zuführ.


öhm... nachts in kälter als draußen? Ich für meinen Teil verstehe überhaupt nichts.



Thund3r hat gesagt.:


> soll ichs heute noch nachfrage oder willst du lieber in ruhe pennen xD


Fragen kostet nichts. Aber versuch dich klarer auszudrücken.


----------



## Thund3r (7. Aug 2010)

Okay ich versuche es an einem bild zu erleutern ^^







Das main,barracks,stable... stammt aus der URL die zu dem gebeude führt.
hinterdem gebeude steht dann die stufe.
aus beidem zusammen kann er aussagen was an der  zugeteilte stelle steht und fügt es in die seite mit ein 

edit: einigermaßen verständlich?


----------



## XHelp (7. Aug 2010)

Ansatzweise in groben Zügen verständlich. Hauptsache du weißt, was du tust 
(mir persönlich fehlt ein wenig der Zusammenhang zwischen dem was du machst und dem was du im letzten Post beschrieben hast)


----------



## Thund3r (7. Aug 2010)

Da ich 0 plan von der materie habe hoffe ich das auch xD

also soweit ich es erkenne sagt er hier was da rein kommt und wie er es fest stellt 


```
//Punkteanzeige
        var gebaude = new Object;

        if (table.rows[i].cells.length > 6)
        {
                gebaude.zelle_anzeige = table.rows[i].insertBefore(document.createElement('td'),null);
                gebaude.zelle_anzeige.setAttribute("align","center");
                gebaude.zelle_typ = table.rows[i].cells[0];

                gebaude.stufe = gebaude.zelle_typ.innerHTML.match(/Stufe ([0-9]+)/);
                gebaude.typ = gebaude.zelle_typ.innerHTML.match(/buildings[\/\\](.*?)\.png/);

                if (gebaude.stufe && gebaude.typ && gebaudepunkte[gebaude.typ[1]])
                {
                        gebaude.zelle_anzeige.innerHTML = gebaude.zelle_anzeige.innerHTML + " <span style=\"color:##4F4F4F;\">+" + gebaudepunkte[gebaude.typ[1]][gebaude.stufe[1]] + " </span>";
                }
```

jetzzt hätte ich noch gerne das er auf das schlagwort "nicht vorhanden" die vorgegebene position 1 angibt also  

gebeudepunkte['church'] = new Array(10,2,2);

dann die 10 ausspuckt 

muss ich dafür nur gebaude.stufe = gebaude.zelle_typ.innerHTML.match(/nicht vorhanden ([0-9]+)/);


bzw. nur das wort nicht zwischen die beiden angaben setzen?


----------



## Thund3r (7. Aug 2010)

aber ich denke mal hart da muss noch nen if rein wa oder kann man den beide wörter in einem tag suchen lassen?


----------



## XHelp (7. Aug 2010)

JavaScript indexOf() Method


----------



## Thund3r (7. Aug 2010)

oookay, verstehe nur bahnhof -.-


----------



## XHelp (7. Aug 2010)

Was verstehst du daran nicht? 
	
	
	
	





```
indexOf
```
 liefert dir -1, falls der Substring nicht vorhanden ist, d.h. wenn 
	
	
	
	





```
deinString.indexOf('nicht vorhanden')>=0
```
 ist, dann ist es vorhanden


----------



## Thund3r (7. Aug 2010)

mir sagt es nichts weil ich damit nix anzufangen weiß, der anfängerei wegen ...

kannst du mir wie ich das umschreiben muss und wo es rein muss?


----------



## XHelp (7. Aug 2010)

Kann ich leider nicht, weil ich nicht wirklich verstehe was du machst.
Will dich hier nicht vergraueln, aber vllt. wird man dir in einem JavaScript Forum eher helfen können als hier.


----------



## Thund3r (7. Aug 2010)

Das problem ist das ich die befehle nicht kenne bzw. nicht weiss
was dein deinString. oder was es fest legt mir ist klar das es nen ersat wort ist aber ways ist ein string ?


----------



## XHelp (7. Aug 2010)

```
deinString
```
 ist der String wo du "nicht vorhanden" suchen willst. Ich vermute stark, dass es 
	
	
	
	





```
gebaude.zelle_typ.innerHTML
```
 ist


----------

