Zitatmanmüsste jede animation von sekunden auf step ändern
Sollte mit einem guten Editor und einem globalen Ersetzen gehen, ohne dass man alles von Hand ändern muss. Zeig doch mal den Code oder das Fiddle, um das es geht.
Zitatmanmüsste jede animation von sekunden auf step ändern
Sollte mit einem guten Editor und einem globalen Ersetzen gehen, ohne dass man alles von Hand ändern muss. Zeig doch mal den Code oder das Fiddle, um das es geht.
ZitatWelche Datei als UTF-8 abspeichern?
Was ist UTF-8 abspeichern?
Die PHP-Datei mit deinem Kontakformular. Wie man das Format einstellt, hängt von deinem Editor ab. Meistens findest man es unter "Speichern - unter" oder in den Einstellungen.
macht nur Sinn, wenn die Datei auch wirklich in diesem Format gespeichert wurde.
Um deine Frage zu beantworten braucht man weitere Informationen:
Zitatwodurch ein php code ausgeführt wird (-> ein Eintrag in eine DB passiert).
Auf welche Weise passiert das? Durch Ajax? Wenn ja, ließen sich sehr einfach zwei Fliegen mit einer Klappe schlagen: Mit Ajax rufst Du ja ein PHP-Skript auf. Dieses könnte die Informationen zurück liefern, die Du aktualisieren willst. Im success-Callback wären diese verfügbar und du könntest sie auf deiner Seite aktualisieren. Dann wäre gar kein Neuladen nötig.
Was ist das für eine Lightbox? Vorgefertigt oder selbst gemacht?
Am besten postest Du mal die URL deiner Seite, damit man es sich in Aktion ansehen kann.
Respekt Basti, das funktioniert tatsächlich! Hast Du das irgend wo gefunden oder selbst entwickelt?
So funktioniert es auch:
https://jsfiddle.net/Sempervivum/751o5166/1/
Möglicher Weise sind die Bilder auf github für cross-origin-Zuriff frei gegeben. Das würde erklären, warum es bei einigen geht und bei anderen nicht.
Die Variable "aus" ist lokal in der Funktion los() definiert und daher außerhalb nicht sichtbar. Du musst sie außerhalb definieren und innerhalb den Wert zu weisen.
Zitatdas mit den userscripten mit GM_xmlhttprequest das kriege ich ja hin. aber ohne GM klappt das alles nicht.
mit $.ajax ist es sehr ähnlich zu GM_xmlhttprequest und genau so einfach.
Wenn es um Ajax geht, empfehle ich auf jeden Fall, lieber jQuery zu verwenden. Ist viel einfacher und übersichtlicher.
Zitatwenn das bild zb 100 x 100 pixel gross ist dann zeigt die maus0 von oben links nur bis 30 x 30 an der rest vonn bild ist 0,0,0,. nur die mauskordinaten stimmen
Das habe ich auch beobachtet und konnte den Fehler leider nicht finden. Ich habe aber den Rest auf jQuery umgestellt und damit scheint es zu funktionieren:
$("img").each(function(idx, ele) {
var im = $(this);
var src = im.attr("src");
var w = im.width();
var h = im.height();
var cv = $('<canvas width="'+w+'" height="'+h+'"></canvas>');
im.replaceWith(cv);
//im.replaceWith('<canvas id="cv' + idx + '" width="'+w+'" height="'+h+'"></canvas>');
//var cv = $("#cv" + idx);
cv.drawImage({
source: src,
layer: true,
x: 0, y: 0, width: w, height: h, fromCenter: false,
mousemove: function (layer) {
cv.setPixels({
x: layer.eventX, y: layer.eventY,
width: 1, height: 1,
each: function (px) {
console.log(layer.eventX, layer.eventY, px.r, px.g, px.b);
}
});
}
});
});
Alles anzeigen
Zitatdie "0" müsste doch normalerweise ein i sein wegen der schleife,oder nicht?
Eigentlich ja, ABER: Beim ersten Schleifendurchlauf machen wir durch outerHTML aus dem img-Element ein canvas. Daher verschwindet es aus der life list weil es jetzt kein img mehr ist und das zweite rückt an die erste Stelle. Das heißt, an erster Stelle ist immer ein anderes. Mach mal ein console.log auf alle.length, dann siehst Du, dass die Liste immer kürzer wird.
Zitatwarum geht nur jedes 2te foto?
Das war jetzt ein bisschen verzwickt. Die Sache ist die: Bei der Variablen "alle" handelt es sich um eine "live node list":
https://wiki.selfhtml.org/wiki/JavaScrip…ementsByTagName
Das bedeutet, dass diese Liste aktualisiert wird, wenn sich im DOM etwas ändert. Wenn Du jetzt durch outerHTML aus dem img-Element ein canvas machst, verschwindet es aus der live node list, eben weil es jetzt kein img mehr ist. Dann rückt das nächste an die erste Position. Weil Du aber die Variable g bei jedem Schleifendurchlauf erhöhst, wird jeweils ein Bild übersprungen und Du erreichst das übernächste.
Dieses funktioniert bei mir:
var alle=document.getElementsByTagName('img');
for (var i = 0; alle.length > 0; i++){
var dasbild = alle[0];
var k=dasbild.src;
var w=dasbild.width;
var h=dasbild.height;
var z=dasbild.outerHTML='<canvas id="cv' + i + '" width="'+w+'" height="'+h+'"></canvas>';
var cv = $("#cv" + i);
cv.drawImage({
source:k,
layer: true,
x: 0, y: 0, fromCenter: false,
mousemove: function (layer) {
cv.setPixels({
x: layer.eventX, y: layer.eventY,
width: 1, height: 1,
each: function (px) {
console.log(layer.eventX, layer.eventY, px.r, px.g, px.b);
}
});
}
});
}
Alles anzeigen
Wahrscheinlich wäre das Problem nicht entstanden, wenn man es durchgehend mit jQuery gemacht hätte.
Vielleicht sollte man jsfiddle nicht überstrapazieren, denn man sieht ja, dass es häufig Probleme macht, z. B. wenn es für ein Skript kein CDN gibt. Außerdem ist das Editieren in diesen kleinen Fenstern nicht besonders komfortabel. Meine Empfehlung: Kostenlosen Webspace bei bplaced.net besorgen und dort entwickeln.
Zitat
- GM_xmlhttpRequest({
- 'method': 'GET',
- 'url': 'http://checkip.dyndns.org/',
- onload: function(responseDetails) {
- var content = responseDetails.responseText;
- alert(content)
- }});
und egal von welcher seite aus ausführe bekomme ich antwort vom alert,mit seiten inhalt.
mache ich den code in einer fiddel rein kommen nur fehler meldungen.
Wahrscheinlich liegt das daran, dass GM_xmlhttpRequest() nicht zu Javascript gehört, sonder von Greasemonkey definiert wurde.
Mache dich mit jQuery $.ajax vertraut, damit sollte es funktionieren.
Sehr trickreich, Basti, Respekt! Verbesserungsvorschlag: Die Elemente nur einmal ermitteln:
Das stimmt, mit PHP und file_get_contents() kann man die Cross-Origin-Beschränkungen umgehen. In dem Script in meinem Posting #18 kann man ja als Parameter für file_get_contents auch eine URL auf einer anderen Domain übergeben.
Anscheinend hast Du da zwei Dinge vermengt, die nicht zusammen passen:
Zuerst erzeugst Du ein Array $headers, offenbar nach dem Muster des Links auf php-kurs.
Dann überschreibst Du dieses jedoch in Zeile 10 mit einem String, so dass der Inhalt verloren geht.
Dann wendest Du die Funktion implode() auf einen String und $headers an, die jedoch String und ein Array als Parameter erwartet, während die $headers jetzt einen String enthält.
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.