• 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.

JS / Greasemonkey

DeletedUser

Gast
Hey,

Ich hab ein Problem bei dem Schreiben eines User-Scripts..
Es scheitert schon an den einfachsten Sachen..
Es kommt einfach immer die Meldung:
... is not defined
Dabei kann es sich um Variablen handeln... Oder Funktionen.

So kommt z.B. textbox ist not defined bei:
Code:
var textbox = document.getElementById("message");

Genauso bei Funktionen:
Code:
function gruss()
   {
alert("Hallo!");
}

So kommt z.B. bei diesem "Script":

Code:
// ==UserScript==
// @name           Begrüßen
// @namespace      Begrüßen
// @description    Begrüßen
// @include        http://google.de
// ==/UserScript==

window.helloworld = function() {
    alert('Hello world!');
}

window.setTimeout("helloworld()", 60);

Fehler: helloworld is not defined
Zeile: 0

Ich hoffe ihr könnt mir helfen!
Danke im voraus!

Lieben Gruß!
 

DeletedUser108942

Gast
wieso schreibst du die erste fuktion so??

mach es so:

function Helloworld () {
alert("Hello World");
}
 

DeletedUser

Gast
Code:
function helloworld() {
    alert('Hello world!');
}

window.setTimeout(helloworld, 60);

try this...
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser22014

Gast
Code:
function helloworld() {
    alert('Hello world!');
}

window.setTimeout(helloworld(), 60);
 

DeletedUser

Gast
Auch falsch, so muss es aussehen:
PHP:
function helloworld() {
    alert('Hello world!');
}

window.setTimeout(helloworld,60);
Das es in normalem JS anders geht, liegt an der Sandbox in der Greasemonkey ausgeführt wird.
Könnte man so umgehen, dass man die Funktion in das window Objekt außerhalb der Sandbox (unsafeWindow) speichert. Ist aber eig. nicht sinnvoll und eventuell auch eine Sicherheitslücke.
PHP:
unsafeWindow.helloworld = function() {
    alert('Hello world!');
}

window.setTimeout("helloworld()", 60);
Warum das getElementById nicht funktioniert weiß ich nicht. Syntaktisch ist es korrekt. Bist du sicher dass es die richtige ID ist?
 
Zuletzt bearbeitet von einem Moderator:
Oben