getElementbyID hat den Wert null

IM_Morphium

Grünschnabel
PHP:
// ==UserScript==
// @name           Imaginarum
// @namespace      http://www.imaginarum.net
// @description    Imaginarum Forum verbessert
// @version        0.1
// @author         Morphium
// @license        OHNE License
// @include        http://46.4.67.119/forum/*
// ==/UserScript==

window.onload=function() {
	// ===>> Objekt -> Editor
	function Editor(ID) {
		this.ID = ID;
		this.Buttons = new Array();
		
		// Editor verfügbar
		this.exist = function () {
			return document.getElementById(ID);	
		}
		
		// Buttons reservieren
		this.addButton = function (b) {
			// Nur möglich wenn der Editor existiert
			if(!this.exist) { return false } else {
				Buttons[Buttons.length-1] = b;
			}
		}
		
		// Button in den Editor einfügen
		this.injizieren = function () {
			// Nur möglich wenn der Editor existiert
			if(!this.exist) { return false } else {
				// 1. Element erstellen und konfigurieren
				var neuesElementDiv = document.createElement('DIV');
				var neuesElementDiv_ID = "IMAGINARUM_ERWEITERUNG";
				neuesElementDiv.setAttribute("id", neuesElementDiv_ID);
				// 2. Element füllen
				for(i=0;i<Buttons.length;i++) {
					neuesElementDiv.innerHTML = "<img";
					neuesElementDiv.innerHTML += "id=\"Button_"+i+"\"";
					neuesElementDiv.innerHTML += "src=\""+Buttons[i].Bildadresse+"\" ";
					neuesElementDiv.innerHTML += "title=\""+Buttons[i].Titel+"\" ";
					neuesElementDiv.innerHTML += "alt=\""+Buttons[i].Titel+"\" ";
					neuesElementDiv.innerHTML += "onclick=\""+Buttons[i].Funktion+"\"";
					neuesElementDiv.innerHTML += "</img>";
				}
				// 3. Element injizieren
					document.getElementById(ID).appendChild(neuesElementDiv);
			}
		}
	}
	// <<=== Objekt -> Editor
	// ===>> Objekt -> Button
	function Button(Titel, Bildadresse, Funktion) {
		this.Titel = Titel;
		this.Bildadresse = Bildadresse;
		this.Funktion = Funktion;	
	}
	// <<=== Objekt -> Button
	
	// =={Objekt deklarieren & initialisieren}==
	// Vorhandene Imaginarum-Editoren
	var Editoren = new Array();
	Editoren[0] = new Editor('vB_Editor_QR');	// Einfacher Editor
	Editoren[1] = new Editor('vB_Editor_001');	// Erweiterter Editor
	
	// Button die hinzugefügt werden
	var Buttons = new Array();
	Buttons[0] = new Button('Youtube', 'http://localhost/ftp/youtube_icon.png', 'youtube()');	// Youtube
	
	// =={Ablauf}==
	for(i=0;i<Editoren.length;i++) {
		if(Editoren[i].exist()) {
			for(j=0;j<Buttons.length;j++) {
				Editoren[i].addButton(Buttons[j]);
			}
		}
		Editoren[i].injizieren();
	}
}

Mit diesem Codestück habe ich Probleme:
document.getElementById(ID).appendChild(neuesElementDiv);

Er sagt mir das sich in getElementById(ID) nichts befindet und ich weiß nicht wieso.

PS: Bin noch ein Anfänger ;)
 
Also auf der Seite "http://46.4.67.119/forum/" kann ich auch kein "vB_Editor_QR" finden.
 
Das ist eine Google Chrome Erweiterung, die dann nur installiert werden muss.
Diese Erweiterung schaltet sich erst ein wenn
http://46.4.67.119/forum/*
aufgerufen wird.

Wenn du auf ein Thema klickst findest du sehr wohl einen Editor mit du einen Beitrag schreiben kannst.
Einen einfachen mit den was du antworten kannst und einen erweiterten.

PHP:
    // =={Ablauf}== 
    for(i=0;i<Editoren.length;i++) { 
        if(Editoren[i].exist()) { // <-- Hier wird es abgefangen falls kein editor auf der Seite vorhanden ist ;)
            for(j=0;j<Buttons.length;j++) { 
                Editoren[i].addButton(Buttons[j]); 
            } 
        } 
        Editoren[i].injizieren(); 
    }

Diese Erweiterung soll einen Button hinzufügen.

PS: Danke fürs helfen. ;)
 
Sollte
Code:
Editoren[i].injizieren();
dann nicht auch in den if-Block?

Und das hier ist immer true, weil die Funktion existiert (du führst sie an der Stelle nicht aus, mangels Klammern) "if(!this.exist)"


Wenn du auf ein Thema klickst findest du sehr wohl einen Editor mit du einen Beitrag schreiben kannst.
Dafür müsste ich dort wohl angemeldet sein.

Das ist eine Google Chrome Erweiterung, die dann nur installiert werden muss.
Oder Firefox, mit dem Greasemonkey Addon.
 
Zuletzt bearbeitet:
Ich erkläre dir mal was ich vorhabe, weil bei mir funktioniert komischerweise die if-Anweisung

// Ich erstelle alle zu findenden Editoren von Imaginarum
PHP:
var Editoren = new Array(); 
    Editoren[0] = new Editor('vB_Editor_QR');    // Einfacher Editor 
    Editoren[1] = new Editor('vB_Editor_001');    // Erweiterter Editor

// Dann erstelle ich den Button der später hinzugefügt werden soll
PHP:
 // Button die hinzugefügt werden 
    var Buttons = new Array(); 
    Buttons[0] = new Button('Youtube', 'http://localhost/ftp/youtube_icon.png', 'youtube()');

// Jetzt werden nacheinander alle Editoren aufgerufen
PHP:
// Editoren werden nacheinander aufgerufen
    for(i=0;i<Editoren.length;i++) {
        // Existiert der Button dann soll der Button eingefügt werden
        if(Editoren[i].exist()) { 
            for(j=0;j<Buttons.length;j++) { 
                Editoren[i].addButton(Buttons[j]); 
            } 
        } 
        Editoren[i].injizieren(); // <-- Was macht den die Funktion den draußen?
    }

Jetzt habe ich verstanden was du wolltest.
Ich danke dir, einfach zu blöd zum lesen. xD
 
Zurück