• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Aktualisierung Iframe

Das ist das, was man Tabellendesign nennt! Hat man vor einige Jahren aber für tot erklärt - wird auch heute nicht mehr gemacht. Hat zu viel viele Nachteile und ist Null-Responsive!
Und diese vielen 1px gifs sind wohl Platzhalter/Lückenfüller/Breitengeber in ansonsten leeren <td>'s.
 
Werbung:
Hallo Basti1012,

bitte mache mir nochmal das Skript mit den neuen Links von ZAMG.

Bild 1: http://www.zamg.ac.at/fix/wetter/bodenkarte/2018/01/16/BK_BodAna_Sat_1801161200.png
Bild 2: http://www.zamg.ac.at/dyn/pictures/Hsatimg/H1801161800.gif

Die Ansicht war alles soweit ok.

Ich musste die Grafiken runternehmen, da diese vom Alpenverein waren und die mir die Einbindung untersagt haben.

Deshalb muss ich die Grafiken von ZAMG nehmen. Die haben mir die VÖ erlaubt.

Gerne erwarte ich Dein aktualisiertes JAVA-Skript.

LG

Volker
 
Jetzt habe ich es kapiert.Habe eben gar nicht gesehen das es andere Links wahren.

Code:
 <div id="bild1"></div>
 <div id="bild2"></div>
<script src="//code.jquery.com/jquery-3.2.1.min.js"></script>
 <script>
     var jetzt = new Date();
  var Jahr1 = jetzt.getFullYear()-2000;
    var Jahr = jetzt.getFullYear();
  var Tag = jetzt.getDate();
  var TagA = ((Tag < 10) ? "0" + Tag : Tag);
  var Jahresmonat = jetzt.getMonth();
  var Monat = (Number (Jahresmonat) + Number (1));
  var MonatA = ((Monat < 10) ? "0" + Monat : Monat);

  var Stunde = jetzt.getHours()-1;
  var Std = ((Stunde < 10) ? "0" + Stunde : Stunde);
 if(Std>=0 && Std<6){
 var stunde='00';
 }else if(Std>=6 && Std<12){
var stunde=06;
 }else if(Std>12 && Std<18){
var stunde=12;
 }else if(Std>18 && Std<=23){
var stunde=18;
 }

 $('#bild1').html('<a href="http://www.livewetter.org"><img  src="http://www.zamg.ac.at/dyn/pictures/Hsatimg/H'+Jahr1+''+MonatA+''+TagA+''+Std+'00.gif" width="200" height="150"></a>');

   $('#bild2').html('<a href="http://www.livewetter.org/"><img  src="http://www.zamg.ac.at/fix/wetter/bodenkarte/'+Jahr+'/'+MonatA+'/'+TagA+'/BK_BodAna_Sat_'+Jahr1+''+MonatA+''+TagA+''+stunde+'00.png" width="200" height="150"></a>');

 </script>

Ob es richtig Funktioniert siehst du ja morgen.Weil bei den einen Bild bin ich mir nicht sicher ob das mit den Datum richtig ist .Aber ich kucke morgen auch mal nach ,und koregiere das notfalls nochmal
 
Zuletzt bearbeitet:
Werbung:
Stimmt hast recht .Das eine Bild wird Stündlich aktualiesiert und das andere wohl alle 6 Stunden. Habe bei mir noch ne if abfrage rein gemacht .Nur ein problem gibt es noch .Zwischen 0 und 6 Uhr ist kein Bild zu sehen .Das wurde gerade erst Aktualiesiert.Sollte man vieleicht das letze Bild vom Vortag holen für die Zeit zwischen 0 und 6 Uhr .Oder eine Abfrage rein bauen ob das neue Bidd schon vorhanden ist .


EDIT habe mal nee abfrage reingebaut ob das neue bild schon online ist .Wenn nicht wird das Bild vom vor abend geladen .
Code:
  <div id="bild1"></div>
 <div name="bild2"><img name="bild2" src="" width="400" height="300"></div>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

  <script>
var jetzt = new Date();

  var Jahr1 = jetzt.getFullYear()-2000;
    var Jahr = jetzt.getFullYear();
  var Tag = jetzt.getDate();
  var TagA = ((Tag < 10) ? "0" + Tag : Tag);
  var Jahresmonat = jetzt.getMonth();
  var Monat = (Number (Jahresmonat) + Number (1));
  var MonatA = ((Monat < 10) ? "0" + Monat : Monat);

  var Stunde = jetzt.getHours()-1;
  var Std = ((Stunde < 10) ? "0" + Stunde : Stunde);

 if(Std>=0 && Std<6){
 var stunde='00';
var minus=18;
 }else if(Std>=6 && Std<12){
var stunde='06';
var minus='00';
 }else if(Std>12 && Std<18){
var stunde=12;
var minus='06';
 }else if(Std>18 && Std<=23){
var stunde=18;
var minus=12;
 }

var url='http://www.zamg.ac.at/fix/wetter/bodenkarte/'+Jahr+'/'+MonatA+'/'+TagA+'/BK_BodAna_Sat_'+Jahr1+''+MonatA+''+TagA+''+stunde+'00.png';
 
function check(url) {
    if(!url || !document.images) return
    var img = new Image();
    img.onload = function () { 
         document.images['bild2'].src = this.src;
    };
    img.onerror = function ()   {
         document.images['bild2'].src = 'http://www.zamg.ac.at/fix/wetter/bodenkarte/'+Jahr+'/'+MonatA+'/'+Math.round(TagA-1)+'/BK_BodAna_Sat_'+Jahr1+''+MonatA+Math.round(TagA-1)+''+minus+'00.png';
    }
    img.src = url + '?' + Math.random();
}

 check(url)


  $('#bild1').html('<a href="http://www.livewetter.org"><img  src="http://www.zamg.ac.at/dyn/pictures/Hsatimg/H'+Jahr1+''+MonatA+''+TagA+''+Std+'00.gif" width="400" height="300"></a>');


 </script>


Vieleicht kann ja einer von euch das noch verbessern.Weil denke das ist wohl noch nicht Optimal.
 
Zuletzt bearbeitet:
Ja wenn der Tag der erste ist das habe ich nicht bedacht.Hast du das mit eingebaut? Weil ich finde das nicht wo er das ausschliest bzw das erkennt . Oder bin ich blind?
 
Wieder was dazu gelernt .Ich hätte das wieder mit komplizierten if abfragen geregelt. Wusste garnicht das man beim Datum so einfach ,über Monate hinweg einfach paar Stunden runter rechnen kann.Schön ,Schön, man lernt immer wieder was dazu.
 
Werbung:
Vielen Dank für Eure Unterstützung.

Ich habe jetzt mal Eure o.a. Vorschläge bzw. Skripte eingestellt:

Leider kommt nur eine Grafik.

Könnt Ihr bitte noch die Größe berücksichtigen: height="150" width="200"

Herzliche Dank.

LG

Volker
 
Also bei den Script von @Sempervivum werden beide Bilder angezeigt.

Code:
   <a href="http://www.livewetter.org/"><img id="wetterbild1" width="200" height="150" /></a> <br>
   <a href="http://www.livewetter.org/"><img id="wetterbild2" width="200" height="150"  /></a>
    <script>
        function adjVal(v) {
            if (v < 10) v = "0" + v;
            return v;
        }
        function getUrls(now) {
            var now = new Date();
            var fullYear = now.getUTCFullYear(),
                year = fullYear - 2000;
            var month = adjVal(now.getUTCMonth() + 1);
            var date = adjVal(now.getUTCDate());
            var hour = now.getUTCHours();
            var hour6 = adjVal(Math.floor(hour / 6) * 6);
            hour = adjVal(hour);
            var url1 = "http://www.zamg.ac.at/fix/wetter/bodenkarte/"
                + fullYear + "/" + month + "/" + date + "/BK_BodAna_Sat_"
                + year + month + date + hour6 + "00.png";
                //+ year + month + date + "0000.png";
            var url2 = "http://www.zamg.ac.at/dyn/pictures/Hsatimg/H"
                + year + month + date + hour + "00.gif";
                //+ year + month + date + "0000.gif";
            return [url1, url2];
        }
        document.getElementById("wetterbild1").addEventListener("error", function () {
            if (zaehler1 < 10) {
                now1.setUTCHours(now1.getUTCHours() - 6);
                this.src = getUrls(now1)[0];
                zaehler1++;
            }
        });
        document.getElementById("wetterbild2").addEventListener("error", function () {
            if (zaehler2 < 10) {
                now2.setHours(now2.getHours() - 1);
                this.src = getUrls(now2)[1];
                zaehler2++;
            }
        });
        var now1 = new Date(), now2 = new Date(),
            zaehler1 = 0, zaehler2 = 0;
        var urls = getUrls(now1);
        document.getElementById("wetterbild1").src = urls[0];
        document.getElementById("wetterbild2").src = urls[1];
    </script>


Habe jetzt die kleinen änderungen vorgenommen.
Jetzt ist grösse wie du es wolltest .
Die Bilder sind auch verlinkt.
Mit <br> sind die Bilder auch wieder untereinander,wie du es vorher wolltest.
Wenn sie nebeneinander sein sollen dann das <br> wieder löschen.
Eigentlich macht man das mit der Css, aber bei dein Html müsste man da noch einiges ändern.

Fals du alles mitgelesen hast ,das eine Bild wird alle 6 Stunden Aktualiesiert. Es kann sein das es nach 6 Stunden noch kein neues Bild geben tut.
Deswegen läd das Script das Bild davor. Eigentlich müsste in den Script immer ein Bild angezeigt werden .Fals nicht liegt es an den Server ,oder beim einbinden ist bei dir was falsch gelaufen.
 
Zuletzt bearbeitet:
Werbung:
Wahr gerade auf deiner Seite.Lösch mal alles was du eingebunden hast raus.Und mache nur dieses eine letzte Script rein.Weill du hast da alles doppelt und dreifach eingebunden. Das letzte Script reicht und macht alles wie es sein soll.

Da du du alle Script varianten eingebunden hast ,die wir hier erstellt haben ,sind einige ID'S auch doppelt und dreifach vorhanden.Deswegen wird wohl auch nur ein Bild angezeigt.Bzw überschreibt das erste Script das letze ,weil in der ersten Version lief auch noch nicht alles.

Wie gesagt ,nur das letzte Script einbinden aus ( post #32 ),die anderen Versionen aller rauslöschen.
 
Zuletzt bearbeitet:
Ich bin zwar kein Experte ,aber jetzt sieht es auf deiner HP schon besser aus.Wenn du mal da Struktur rein gebracht hast ,könnte man die Bilder noch mittig setzen,aber sonst sieht es schon besser aus als eben.Vieleicht solltest du die Bilder noch etwas grösser anzeigen ,ich finde die Persönlich etwas zu klein. Oder man läst die gross anzeigen ,wenn man drauf klickt.Aber das ist nur meine meinung. Ist auf jeden fall besser als eben.
 
Werbung:
Das 6 stunden Bild hat jetzt kein Bild. ( 2 Uhr )Kann das sein das der "onerror" nicht feuert ?
Bei den Script was ich da mit "onerror" gemacht habe ist ein Bild zu sehen( Das bild vor 6 Stunden ). Ich glaube das liegt an den"onerror" ,bin mir aber nicht sicher
 
Also Feuern tut er. Ich glaube es liegt hier ran
Code:
 now1.setUTCHours(now1.getUTCHours() - 6);

weil du oben in der function nochmal getUTCHours aufrufen tust und das er dann durcheinander kommt oder so .Habe in console.log gesehen das er erst die 6 Stunden abzieht,aber dann oben in der Function kommt dann wieder 0 uhr raus ,anstatt 18 uhr .Ich hoffe ich konnte es richtig erklären. Ich weiss aber auch nicht wie man das ändern kann.Zumindest nicht mit kurzen ordentlichen code.

Edit habe das mal auch mit langen Code versucht und geschafft
*** Link entfernt, weil nicht mehr erreichbar ***
aber ich weiss das du es besser machst weil ich habe wieder viel zu viel Code gebraucht
 
Zuletzt bearbeitet:
Was sagt der Experte?
Ich sage mal, dass du einen falschen Weg einschlägst. Deine Seite ist, wie schon erwähnt, eine mittelschwere Katastrophe. Anstatt immer mehr in die Seite einzubauen, solltest du erst einmal die Seite vom Grundgerüst her vernünftig aufbauen und dann erst Erweiterungen implementieren. Warum du die Hinweise auf den grausamen HTML-Code einfach ingnorierst, ist mir ein Rätsel.
 
Werbung:
OMG, so ein blöder Fehler

Ist schon immer interessant,das ein kleiner Fehler doch nee grosse auswirkung haben kann.Aber fehler passieren, ohne währe ja auch langweilig.

Aber ich sehe mal wieder das ich wieder falsch gedacht habe,Anstatt die Zeile daraus zu löschen ,habe ich mal wieder einen umständlichen,zulangen Code daraus gemacht.
Ich muss umbedingt damit anfangen,erst die Fehler zu analiesieren und mir dann gedanken zu machen wie man es lösen kann,anstatt einen unnötigen ,zulang gerattenen Code zu schreiben
 
Zurück
Oben