Bild in einer Datei einfügen das wie die Datei selbst heißt??

dann liegt’s wohl am »filename« und daran, dass JavaScript den gesamten pfad zur datei als dateiamen interpretiert... welcher browser?
 
hatte ich hier nich gerade ne antwort abgeschickt???

Also IE6...

und das muss doch irgendwie gehen?! :(

ich mein, ich könnt alle bilder in den gleichen ordner wie die htmls packen... aber dann übersicht ade :-[
 
Ne, das Problem an der Sache ist, dass die Sache lokal läuft und die vollständigen URLs Backslashes enthalten, nicht Slashes wie online verlangt werden!

Daher funktioniert folgende Variante mit dem "URL-String-Auseinandernehmen"
PHP:
var file = urlstring.substring(urlstring.lastIndexOf('/') + 1);
nicht so ganz korrekt, da sie nur das "file://" herausfiltert, nicht auch weiter den Rest des Pfades zum Dokument.

Es muss also stattdessen auf Vorhandensein des letzten Backslashes geprüft werden und schon läuft die Sache. :)
PHP:
<script type="text/javascript" language="JavaScript">
<!--

function loadImage(urlstring) {
    var file = urlstring.substring(urlstring.lastIndexOf('\\') + 1);
    var filename = file.substring(0, file.lastIndexOf('.'));
    var backString = "<img src = '../fotos/" + filename + ".jpg'>";
    return backString;
}

//-->
</script>
"\\" daher, weil sonst der JavaScript-Interpreter das ganze für eine Maskierung des Hochkommas hält.

hth && gn8,
Gest
 

*lol*
erstmal danke das ihr euch sone mühe mit sonem hoffnungslosen fall wie mir gebt! ;)

aber ich hab mal die version von da oben kopiert und die alte durch die neue ersetzt, jetzt zeigt er aber den namen des bildes nicht mehr an :-)

file:///C:/www.dickblockig.de/wwwroot/fotos/.jpg

sagter mir :)
irgend ne ahnung was da falsch gelaufen ist??
mit :denken: hats bei mir irgendwie nicht geklappt :)

edit:
aaah. hilfe...
und wenn ich bei lastIndexOf('') wieder den slash einsetze sagter mir wieder
file:///C:/www.dickblockig.de/wwwroot/fotos/C:/www.dickblockig.de/wwwroot/dortmund/01811.jpg

also hatter da den dateinamen, allerdings nicht den richtigen ordner, und es ist wieder doppelt gemoppelt


edit2:
ok... jetzt isses nurnoch confus...
ich hab mal testweise ne datei hochgeladen,
http://www.dickblockig.de/dortmund/01811.htm und es funktioniert...
allerdings funktioniert die dann offline nicht, was sie eigentlich auch tun müsste/sollte... :(
liegt das denn nur daran obs offline oder online ist?? grrrr...
eigentlich ist das nämlich schon wichtig das ich ein und die selbe datei offline und online habe, und sie auch in beiden versionen gleichermaßen dargestellt werden, da ich teilweise noch additional infos schreiben muss, und mir die seite auch offline öfters anschaue...

gibts da irgendsone "weiche" für offline/online version?? *g*
naja, ich denke mal nicht...
aber gibt es nicht evtl noch ne ganz andere version die auch funktioniert?? :)
 
Zuletzt bearbeitet:
Hm, weißt du, wie ein HTML-Dokument aufgebaut ist?
Dein Beispiel enthält bspw. weder einen <body>-Tag, noch einen abschließenden </html>-Tag!

Zur Problematik mit den Bildern:
Die Sache ist die, dass lokale Pfade einen Backslash statt eines Slashes verwenden.
Die JavaScript-Anweisungen deiner Funktion zerlegen aber eben den URL-String.

-> im Internet funktioniert die Variante mit dem Slash (urlstring.lastIndexOf('/'))
-> lokal funktioniert die Variante mit dem maskierten (!) Backslash (urlstring.lastIndexOf('\\'))

Afaik ist es aber nicht definitiv möglich, zu prüfen ob das Script in einem Dokument läuft, welches lokal ausgeführt wird, oder ob es eben in einem Dokument läuft, welches auf irgendeinem Server liegt.
Ich habe mal in Anlehnung an die Idee mit den Pfaden einen Versuch gestartet, das ganze in die jeweilige Richtung zu lenken:
PHP:
<script type="text/javascript" language="JavaScript">
<!--

function loadImage(urlstring) {
    if (urlstring.lastIndexOf("\\") == -1) {
        var file = urlstring.substring(urlstring.lastIndexOf('/') + 1);
    } else {
        var file = urlstring.substring(urlstring.lastIndexOf('\\') + 1);
    }
    var filename = file.substring(0, file.lastIndexOf('.'));
    var backString = "<img src = '../fotos/" + filename + ".jpg'>";
    return backString;
}

//-->
</script>
wäre dafür die Funktion - da ich aber nichts dergleichen bisher irgendwo gelesen habe, kann ich dir nicht sagen, ob das Script in 100% der Fälle wirklich so zwischen lokal/online unterscheiden kann.
Ist aber sicher einen Versuch wert, denke ich. :)

Wenn jemand noch Gedanken dazu hat, inwiefern das nicht ausreichen könnte o.ä., kann er sie ja gerne mal hier äußern, wäre gespannt darauf.

ansonsten hth,
Geist
 
Ach shit.
Wenn ich das so mach zeigter nen JS Fehler an und das Bild is auch nich da. :(

Naja, was solls. Ich glaube dann werde ich das jetzt weiter per Hand machen. Schade.

Naja, trotzdem riiiesen Dank an geist und die andern! :)
 
Ne, keine Scriptfehler, das Forum hat nur mal wieder Probleme dabei, Backslashes in Code darzustellen!
Ist mir im vorigen Posting gar nicht aufgefallen, dass das auch dort schon der Fall war.

In die lastIndexOf() muss als Argument jeweils ein '\' hinein, dann klappt's eigentlich.

Sorry *grummel*

Geist
 
sorry, ich bin doof. ich weiß :-)

PHP:
<script type="text/javascript" language="JavaScript">
<!--

function loadImage(urlstring) {
    if (urlstring.lastIndexOf('\') == -1) {
        var file = urlstring.substring(urlstring.lastIndexOf('/') + 1);
    } else {
        var file = urlstring.substring(urlstring.lastIndexOf('') + 1);
    }
    var filename = file.substring(0, file.lastIndexOf('.'));
    var backString = "<img src = '../fotos/" + filename + ".jpg'>";
    return backString;
}

//-->
</script>
Soo???
weil so funktionierts leider immernoch nicht :-[ :(
so gehts nämlich leider auch nicht...
boah hilfe is das alles kompliziert *g*
 
Das ist ja der gleiche Code wie meiner. ;)

Und das Forum unterstützt auch weiterhin keine Backslashes in PHP-highlightened Syntax... :(

<script type="text/javascript" language="JavaScript">
<!--

function loadImage(urlstring) {
if (urlstring.lastIndexOf('\') == -1) {
var file = urlstring.substring(urlstring.lastIndexOf('/') + 1);
} else {
var file = urlstring.substring(urlstring.lastIndexOf('\') + 1);
}
var filename = file.substring(0, file.lastIndexOf('.'));
var backString = "<img src = '../fotos/" + filename + ".jpg'>";
return backString;
}

//-->
</script>

Den hier meine ich jedenfalls...ohne Highlightening oder Einrückung, aber so wird's endlich mal gescheit dargestellt...

Geist
 
:( :(

geht immernoch nich richtig.
beim funktionsaufruf scheint n fehler drin zu sein

auf jeden fall sagter mir
Fehler: Objekt erwartet
Zeile: 31
Zeichen: 1

ich poste mal die komplette Datei. Hochladen bringt nichts, die Onlineversion scheint ja zu fluppen...

<html>
<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgproperties="fixed">
<head>
<title>http://www.dickblockig.de</title>
<script type="text/javascript" language="JavaScript">
<!--

function loadImage(urlstring) {
if (urlstring.lastIndexOf('\') == -1) {
var file = urlstring.substring(urlstring.lastIndexOf('/') + 1);
} else {
var file = urlstring.substring(urlstring.lastIndexOf('\') + 1);
}
var filename = file.substring(0, file.lastIndexOf('.'));
var backString = "<img src = '../fotos/" + filename + ".jpg'>";
return backString;
}

//-->
</script>
</head>
<table width=100% height=100% cellspacing=0 cellpadding=0 border="0">
<tr>
<td valign="top">&nbsp;</td>
<td valign="top" align="center"> <br>
<center><table border="1" bordercolor="#FFFFFF" cellpadding="0" cellspacing="2" >
<tr align="center">
<td>
<script type="text/javascript" language="JavaScript">
<!--
document.write(loadImage(document.URL)); hier müsste zeile 31 sein :confused:
//--></script></td>
</tr>
<tr align="center">
<td>
<input type="radio" name="z" onClick="document.body.style.zoom=0.5">
<input type="radio" name="z" onClick="document.body.style.zoom=0.75">
<input type="radio" name="z" onClick="document.body.style.zoom=1.0">
<input type="radio" name="z" onClick="document.body.style.zoom=1.25">
<input type="radio" name="z" onClick="document.body.style.zoom=1.5">
</td>
</tr>
</table>
</td>
<td valign="top" align="center">_</td>
</tr>
</table>

Aber sonst scheint doch eigentlich alles zu stimmen, oder??
 
Zurück