Autor |
Nachricht |
C H W O N S
Threadersteller
Dabei seit: 03.05.2004
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Mi 02.02.2011 12:44
Titel bildwechsel per javascript |
|
|
hallo, ich habe hier folgenden code
Code: | <script language="JavaScript" type="text/JavaScript">
var bilder = new Array();
bilder[0] = "Bilder/1.jpg";
bilder[1] = "Bilder/2.jpg";
bilder[2] = "Bilder/3.jpg";
bilder[3] = "Bilder/4.jpg";
bilder[4] = "Bilder/5.jpg";
bilder[5] = "Bilder/6.jpg";
bilder[6] = "Bilder/7.jpg";
bilder[7] = "Bilder/8.jpg";
var timer = 10000; <!--Millisekunden-->
var arraylaenge = bilder.length;
var index = Math.floor(Math.random() * arraylaenge);
var Bildstring = '<img src="' + bilder[index] + '">';
function Bildwechsel () {
if (index == arraylaenge-1) {
index = 0;
} else {
index++;
}
Bildstring = '<img src="' + bilder[index] + '">';
document.all.Bild.innerHTML = Bildstring;
setTimeout("Bildwechsel()", timer);
}
function Bildanzeige () {
document.all.Bild.innerHTML = Bildstring;
Bildwechsel();
}
</script> |
weiß jemand, ob es möglich ist, einfach nur einen bilderordner anzulegen, auf den das script zugreift. also ohne, dass ich immer die zeile bilder[0] = "Bilder/1.jpg"; im code verändern muss. quasi, dass das script immer auf den ordner /xyz/ zugreift, egal ob da 3 oder 8 bilder drin sind und die dann auch immer benutzt werden.
|
|
|
|
|
Karlarsch
Dabei seit: 05.02.2007
Ort: -
Alter: 58
Geschlecht:
|
Verfasst Mi 02.02.2011 13:12
Titel
|
|
|
Mit Javascript sind keine Datei-Operationen möglich. Das ginge nur mit jscript oder vbscript im Internet explorer und dann auch nur auf deinem Client-System, nicht auf dem Server.
Für das was du vorhast benötigst du eine serverseitige Sprache deiner Wahl.
Gruß
Karl
Zuletzt bearbeitet von Karlarsch am Mi 02.02.2011 13:13, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 02.02.2011 23:52
Titel
|
|
|
Könntest höchstens per js 'schauen' welche Bilder ladbar
sind (also z.B. von 0.jpg bis z.B. 10.jpg) und nicht die nicht
auffindbaren (über den onerror-event) aus deinem array
schmeißen. Müsstes Du halt vorher erst alle abfragen, bevor
du dein Bilderwechsel-Dingens anschmeißt.
Aber hübsch ist dieser Weg nicht.
Grüße
zweitaccount
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Do 03.02.2011 06:12
Titel
|
|
|
Du kannst auch Bilder per JS austauschen und wechseln lassen. Es sei denn Javascript hat sich in den letzten 2 Jahren geändert und ich hab es nicht mitbekommen
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 03.02.2011 09:15
Titel
|
|
|
Jo, das hat der TO auch vor, nur will er ja ein Script haben
das sich eine undefinierte Anzahl von Bilder aus einen
Ordner rauspickt - also mit einem if file_exsits via
javascript praktisch.
@CHWONS
Das wäre vielleicht eine nützlicher Schnipsel für Dich:
Code: | function file_exists (url) {
// Returns true if filename exists
//
// version: 1101.3117
// discuss at: http://phpjs.org/functions/file_exists
// + original by: Enrique Gonzalez
// + input by: Jani Hartikainen
// + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// % note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
// % note 1: Synchronous so may lock up browser, mainly here for study purposes.
// * example 1: file_exists('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
// * returns 1: '123'
var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
if (!req) {throw new Error('XMLHttpRequest not supported');}
// HEAD Results are usually shorter (faster) than GET
req.open('HEAD', url, false);
req.send(null);
if (req.status == 200){
return true;
}
return false;
} |
http://phpjs.org/functions/file_exists
Zuletzt bearbeitet von zweitaccount am Do 03.02.2011 09:16, insgesamt 1-mal bearbeitet
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 03.02.2011 10:10
Titel
|
|
|
Zitat: | Jo, das hat der TO auch vor, nur will er ja ein Script haben
das sich eine undefinierte Anzahl von Bilder aus einen
Ordner rauspickt - also mit einem if file_exsits via
javascript praktisch |
Häh? Und wie bekommst Du den Dateinamen raus? Via Brute Force beginnend mit 0.jpg oder was? Denken, dann implementieren. Mal davon abgesehen, dass das Ding da nur synchron funktioniert und Dir bei ein paar Bildern mehr erstmal den guten, alten IE aufhängt (immerhin nur den, woanders läuft das Teil nämlich nicht.)
Also entweder Du lässt den Ordner serverseitig auslesen und stellst das Ergebnis dem Javascript-Scope in irgendeiner Form zur Verfügung, oder Du musst halt Hand anlegen. Eine verkürzte Schreibweise für ein Javascript-Array ist übrigens
Code: |
var images = [
'/bilder/bild_1.jpg',
'/bilder/bild_2.jpg',
...,
'/bilder/bild_n.jpg'
];
|
Damit sparste Dir immerhin Schreibarbeit, und mal ganz ehrlich: Ausgehen von Deiner Frage, lieber TE, würde ich bei meinen Leisten bleiben und das Ding einfach so weiter pflegen.
Zuletzt bearbeitet von bacon am Do 03.02.2011 10:12, insgesamt 2-mal bearbeitet
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 03.02.2011 11:32
Titel
|
|
|
bacon hat geschrieben: |
Häh? Und wie bekommst Du den Dateinamen raus? Via Brute Force beginnend mit 0.jpg oder was?
|
Öhm ja? Wenns nur 10 Buidln sind, nummeriert von 0 bis 9 z.B.
Könnte man das doch schön dreckig so machen:
Code: | var loader = (function(){
var _name = null;
var _func = null;
var _counter = 0;
var _maxImages = 0;
var _loaded = 0;
var _images = [];
var _load = function() {
if (_counter >= _max) {
_exit();
} else {
var img = new Image();
img.src = _folder + _counter + '.' + _suffix;
img.onload = function(){
_images[_loaded] = this;
_counter++;
_loaded++;
_load();
}
img.onerror = function(){
_counter++;
_load();
}
}
};
var _exit = function() {
window[_name] = _images;
if(typeof window[_func] == 'function') window[_func]();
}
return {
init: function(name,maxImages,folder,suffix,func) {
_name = name;
_max = maxImages;
_folder = folder;
_suffix = suffix;
_func = (func) ? func : false;
_load();
}
};
})();
/**
* @param <string> Name des Arrays in das die Bilder geladen werden sollen
* <number> Max Anzahl von Bildern nach denen gesucht werden soll
* <string> Pfad/Ordner zu den Bildern
* <string> Dateisuffix der Bilder
* <string> Callback funktion nach dem Laden
*/
loader.init('myImages',10,'images/','jpg','myFunc');
var myFunc = function(){
alert('Holla, ein Array mit Img-Elementen: \n' + myImages);
}
|
Saut einem die Console halt mit einer Menge 404 zu...
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Do 03.02.2011 11:39
Titel
|
|
|
Ich halte das für Quatsch. Anforderung: Alle Bilder eines Ordners dem Client verfügbar machen. Lösung: Testen, wieviele von n Bildern, identifiziert nach festem Benahmungsschema (images/{n}.jpg), nicht vorhanden sind. Bewertung: Thema verfehlt. Sorry ...
Zuletzt bearbeitet von bacon am Do 03.02.2011 11:40, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
Bildwechsel mit Javascript
Bildwechsel mit JavaScript
Bildwechsel - Javascript
[JavaScript] Bildwechsel-Schleife
javascript/ bildwechsel/ funzt nicht!!
javascript-bildwechsel in anderen bereich!
|
|