Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Fehler - Bugs - die Usern bekannt sind und behoben werden müssen
stobi_de
Moderator
Moderator
Beiträge: 763
Registriert: Di 11. Okt 2022, 06:30

Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von stobi_de »

Diese Includes stammen aus ECWID.
Ich kann diese nicht in einem Block speichern, dann wird das zweite script inhaltlich komplett verändert.

test mit 5.9.15 und StartM5 ohne jede Modifikation.
Gemeldet vor 3 Wochen ohne Reaktion

Bitte mal Testen, dieses in EINEN Block eingeben - Codeedi schließen und öffnen

Code: Alles auswählen

<!-- SHOP-->

<div id="my-store-99175388"></div>
<div>
   <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18" charset="utf-8"></script><script type="text/javascript"> xProductBrowser("categoriesPerRow=3","views=grid(20,3) list(60) table(60)","categoryView=grid","searchView=list","id=my-store-99175388");</script>
</div>

<!-- SHOP ENDE-->
 <!-- SUCHFELD -->

<div id="my-search-99175388"></div>
<div>
   <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18" charset="utf-8"></script>
   <script type="text/javascript"> xSearch("id=my-search-99175388"); </script>
</div>

<!-- SUCHFELD ENDE-->  
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Moin,

hier habe ich das mal eingefügt:

https://www.mobirise-tutorials.com/Vorlageseite/

(Skripte wurden wieder aus meiner Seite von mir gelöscht)

Shop.jpg



Nach dem Schließen vom "Code Editor" und auch nach dem Publizieren bleibt alles unverändert.

Das Script für das "Suchen" Feld hast Du doppelt drinnen.


Code Editor:

Code-Editor.jpg


Arbeitsseite:

JavaScripts.jpg
stobi_de
Moderator
Moderator
Beiträge: 763
Registriert: Di 11. Okt 2022, 06:30

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von stobi_de »

Nix doppelt!
Schau meinen Code oben: das doppelte kommt durch den Code-Edi!

Das ist der Such-Code

Code: Alles auswählen

 <!-- SUCHFELD -->

<div id="my-search-99175388"></div>
<div>
   <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18" charset="utf-8"></script>
   <script type="text/javascript"> xSearch("id=my-search-99175388"); </script>
</div>

<!-- SUCHFELD ENDE-->  
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

... nach dem Schließen der Software war der Code mit dem "charset" weg. Ich glaube an dem Script ist was nicht ganz sauber.

Entferne:

charset="utf-8"

... ich denke das gehört dort nicht hin und so bleibt der Code erhalten und die Suche funktioniert ebenfalls einwandfrei:

Code: Alles auswählen

<!-- SUCHFELD -->

<div id="my-search-99175388"></div>
<div>
   <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18"></script>
   <script type="text/javascript"> xSearch("id=my-search-99175388"); </script>
</div>

<!-- SUCHFELD ENDE-->



Code-Editor-NEU.jpg



developer.mozilla.org hat geschrieben:charset

Veraltetes Attribut am <script> Element


Falls vorhanden, muss sein Wert eine ASCII-Übereinstimmung ohne Berücksichtigung der Groß- und Kleinschreibung für „utf-8“ sein. Die Angabe des charset-Attributs ist nicht erforderlich, da Dokumente UTF-8 verwenden müssen und das Skriptelement seine Zeichenkodierung vom Dokument erbt.

https://developer.mozilla.org/en-US/doc ... attributes
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Mobirise wird auf solche Anfragen auch keine Reaktion zeigen.

Das ist ein Drittanbieter-Script und wird nicht supportet.

Mobirise wird nur für eigenen Code Support leisten, was ja auch verständlich ist, denn Support kostet Geld.

Woher sollen sie wissen, was an solchen Scripts richtig oder falsch ist. Ich habe zwar nicht viel Ahnung, aber fast immer ist an dem Script (Code) etwas falsch, wenn es vom "Code Editor" entfernt wird.
Klaus
Supporter
Supporter
Beiträge: 443
Registriert: Mi 21. Jul 2021, 00:43

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Klaus »

Hab auch mal kurz geguckt, hat mit dem charset="utf-8" doch nix zu tun es würde auch reichen vorne das seit HTML5 überflüssige type="text/javascript" zu entfernen.

Was MR nun genau stört kann wohl keiner von uns sagen denke ich.

... andere Frage (ggf. ist es auch das) ist Dir schon mal aufgefallen dass Du 2 mal das gleiche JavaScript einbettest?
Macht i.d.R. keinen Sinn sondern ärger ... auch ganz ohne MR.
Also wenn ich zu dem 2ten Scripteintrag mal kurz eine 2 zufüge, also ***script2.js*** dann lässt MR es in Ruhe.

Code: Alles auswählen

<script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18" charset="utf-8"></script>
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Ja, wie auch immer - ich hatte erst beides entfernt und dann ging es sofort.

Dann hatte ich es nur mit dem "charset" versucht und auch dann ging es. Daher musste ich dann davon ausgehen, dass es wohl an dem überflüssigen "charset" liegen wird.

Um das korrekt zu testen, muss man aber das gesamte Script einfügen und nicht nur den Teil mit dem Suchen-Feld. Im oberen Script-Teil steht nämlich ein zweites "charset" und es besteht auch die Möglichkeit, dass Mobirise solche doppelten Einträge entfernt.

… und ja - man müsste jetzt von den Experten bei Mobirise diese Frage beantwortet bekommen, denn es gibt sicherlich einen Grund. Das machen sie dort aber nur sehr ungern und selten, denn sie supporten eben keine fremden Scripts, was ich akzeptiere und auch vollkommen richtig finde.

Das ist nicht die Aufgabe von Mobirise.

Wer fremde Scripts einbaut, muss damit selbst zurecht kommen oder bei dem Verfasser des Scripts nachfragen. Das kann man Mobirise nicht anlasten.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Es lässt mir keine Ruhe. Ich habe es jetzt noch x Mal ausprobiert und ich kann das mit dem:

type="text/javascript"

auch nicht bestätigen. Ich habe diesen Code nun bestimmt 10 Mal in den "Code Editor" kopiert und nicht nur den Editor geschlossen, sondern auch die gesamte Software. Der Code bleibt so unverändert erhalten.

Ich habe hier lediglich 2 x das charset="utf-8" entfernt.

Hier das Script, so wie ich es jetzt funktionierend eingebaut habe:

https://www.mobirise-tutorials.com/Vorlageseite/

(Shop wird später wieder von dieser Seite gelöscht)

Code: Alles auswählen

<!-- Beginn Eingabe Tommy -->

<div id="my-store-99175388"></div>
<div>
   <script type="text/javascript" data-cfasync="false" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18"></script>
   <script type="text/javascript"> xProductBrowser("categoriesPerRow=3","views=grid(20,3) list(60) table(60)","categoryView=grid","searchView=list","id=my-store-99175388");</script>
</div>                    

<!-- SHOP ENDE-->
<!-- SUCHFELD -->

<p style="text-align: center">
 
  <!-- Dieses Script ist doppelt vorhanden, das muss raus --> 
  <!-- <script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?99175388&data_platform=code&data_date=2024-02-18"></script> -->
  
  <script type="text/javascript"> xSearch("id=my-search-99175388"); </script>
  
</p>

<!-- SUCHFELD ENDE-->
<!-- Ende Eingabe Tommy -->

Das mit dem zweiten, extra Suchen-Feld kommt mir auch komisch vor. Ist das denn so auch im Original? Das funktioniert auch nur, wenn ich es in Mobirise in ein extra <p> Tag </p> lege, ansonsten funktioniert das Suchen-Feld im anderen Script nicht :confused:



… und wieso wird da 2 Mal exakt das gleiche Script eingebunden :eek:
Tommy Herrmann hat geschrieben: Fr 8. Mär 2024, 11:36 Das Script für das "Suchen" Feld hast Du doppelt drinnen.
... das meinte ich übrigens auch gestern schon, gleich in meiner allerersten Antwort, damit. Habe mich da anscheinend blöd ausgedrückt.


Genau dieses 2. Skript wird dann nämlich von Mobirise entfernt. Bei mir ging das gestern nur, weil ich bei dem oberen Script das charset="utf-8" versehentlich stehen gelassen habe und heute ging es auch nur deswegen, weil ich das type="text/javascript" beim oberen Script an anderer Stelle eingefügt habe (wie man auch jetzt noch im Code oben sehen kann).

Damit sind diese Strings für Mobirise nicht mehr gleich und es wurde nichts gelöscht.

Jetzt habe ich das 2. (identische) Script auskommentiert und alles funktioniert bestens!

Damit sollte sich dann die Frage an Mobirise auch erübrigen, denn das ist mit 2 x dem identischen Script, auf jeden Fall falsch und eben auch der Grund, warum Mobirise das zweite Script, ganz richtig, gelöscht hatte.


Shop Testseite.png
stobi_de
Moderator
Moderator
Beiträge: 763
Registriert: Di 11. Okt 2022, 06:30

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von stobi_de »

So langsam kann ich Dir folgen, was Du sagen willst.

Aber ich sehe als falsch an, wenn ein Editor aus meinen Quellen was rauslöscht, weil er meint, dass ich keine 2 identischen Javascripts einfügen kann, was hier bei ECWID durchaus sinnvoll ist.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Moin,

das ist (glaube ich) nicht falsch von Mobirise.

Wenn es notwendig sein sollte, zwei Mal das gleiche Skript einzufügen, dann aber in 2 Blöcken von Mobirise.

Es macht ja null Sinn - und es kann auch keinen Sinn machen, wenn ja erkläre bitte welchen - zwei identisch gleiche Javascripts im gleichen Block zu haben, denn die können ja unmöglich doppelt verarbeitet werden, deswegen erkennt Mobirise das und löscht davon einen (immer den zweiten). Wenn diese doppelt verarbeitet werden würden, bliebe das Erebnis dennoch gleich.

Das kannst Du testen, indem Du ein Script anders aufbaust, also das eine meinetwegen so:

<script data-cfasync="false" type="text/javascript" src="https://app.ecwid.com/script.js?9917538 ... "></script>

und das andere z.B. so:

<script type="text/javascript" data-cfasync="false" src="https://app.ecwid.com/script.js?9917538 ... "></script>

Dann lässt Mobirise diese (fälschlicher Weise) in Ruhe.
Klaus
Supporter
Supporter
Beiträge: 443
Registriert: Mi 21. Jul 2021, 00:43

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Klaus »

MR hat keine Intelligenz, das ist eine ganz normale "Programmunschärfe" weiter nix.

Schreibt doch einfach 3 mal die gleiche Zeile rein, MR packt das nicht und kommt mit dem Ersetzen durcheinander, das ist alles:

Code: Alles auswählen

<script src="abc.js"></script>
<script src="abc.js"></script>
<script src="abc.js"></script>
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

das ist doch meiner Ansicht nach auch genau so programmiert, gewollt und richtig. Das passiert dann:

Code: Alles auswählen

<script src="abc.js"></script>
[JS_CODE_1]
[JS_CODE_1]
Die beiden [Hinweise] auf gelöschte Scripts werden extra dargestellt und auch nicht verarbeitet...

Script.jpg



Das dagegen würde bleiben:

Code: Alles auswählen

<script src="abc1.js"></script>
<script src="abc2.js"></script>
<script src="abc3.js"></script>
Klaus
Supporter
Supporter
Beiträge: 443
Registriert: Mi 21. Jul 2021, 00:43

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Klaus »

Falls es so gewollt wäre wurde MR einen Hinweis bringen und das nicht annehmen und beim "Zurück" dann nicht falsch durch Platzhaltercode ersetzen oder beim Code wie oben irgendwas verdoppeln ... aber eigentlich auch schon egal ...

Regel: Keine (string-)identischen Sachen zw. Script Tags einfügen und gut is.
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

So war es einmal - dann haben sich Dutzende von Usern beschwert, dass der "Code Editor" ihren Code nicht annimmt und kaputt wäre und wollten ihr Geld zurück.

Der Code wird zunächst akzeptiert, da hier kein Syntaxfehler vorliegt, sondern ein Denkfehler. Nur Syntaxfehler werden nicht akzeptiert und sofort rot markiert.

Mobirise kommt da kein bisschen durcheinander, es erkennt sogar welcher Code doppelt war und bezeichnet diesen entsprechend mit "JS_CODE_1" sowie, dass dieser 2 x gelöscht wurde.
Klaus
Supporter
Supporter
Beiträge: 443
Registriert: Mi 21. Jul 2021, 00:43

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Klaus »

Ich hab mal fix ein Bsp. geschrieben das so auch vorkommen kann und ok ist und MR macht es platt.
... und das mit dem Log wird verdoppelt -> Bug, das kannst Du noch so "schönreden" ... ;-)

Code: Alles auswählen

<h3>Ausgabe nach 1 Sekunde 4, nach 4 Sekunden 6</h3>

<p id="demo">Platzhalter für die Ausgabe</p>

<script>
  let a = 1;
  let b = 1;
  let zeit = 1000;
</script>

<script>
setTimeout(() => {
  a = a + 1;
  b = b + 1;
  document.getElementById("demo").innerHTML = a + b;
}, zeit);
</script>

Bla bla bla ...

<script>
  zeit = 4000;
</script>

<script>
setTimeout(() => {
  a = a + 1;
  b = b + 1;
  document.getElementById("demo").innerHTML = a + b;
}, zeit);
</script>

<script>
  console.log(zeit);
</script>

Man sieht auch wo es herkommt ... MR parst den Code und hängt den der Reihenfolge nach in die project (dabei packt er aber doppelte Einträge nicht) und setzt für den Code einen Platzhalter wenn der Editor zu ist für die Anzeige.
mrbug1.JPG
Benutzeravatar
Tommy Herrmann
Site Admin
Site Admin
Beiträge: 5826
Registriert: So 6. Dez 2020, 07:37
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Javascripts in einem Block werden durch Code-Edi geändert

Ungelesener Beitrag von Tommy Herrmann »

Moin,

Du, ich will ganz sicher hier nichts schönreden. Ich bin ja nun eher derjenige, der die meisten Bugs an Mobirise gemeldet hat und teste sogar jede Beta-Version.

Mobirise löscht definitiv identische Scripts innerhalb desselben Blocks, und ich sehe keinen Grund, warum das ein Fehler (Bug) sein sollte.

Das habe ich bisher nicht verstanden :confused:

Normalerweise erhöht man einen Wert nicht, indem man zweimal dasselbe Script verwendet, sondern in einer Schleife. Außerdem würde das den Wert nicht erhöhen, sondern überschreiben. Bitte korrigiere mich, wenn ich das falsch verstanden haben sollte.

Ich habe so etwas jedenfalls noch nie irgendwo angewendet gesehen.

Also z.B. eine einfache Schleife anstelle von doppelten Scripts:

Code: Alles auswählen

<script>
    for ( a = 0, b = 20; a <= 5; a++ ) {
        document.write( "<li>a: " + a);
        document.write( "<li>b: " + b);
    }
</script>
Dann macht auch Mobirise keinen Stress:

https://www.mobirise-tutorials.com/Vorl ... /#Tutorial

(wird wieder von meiner Seite gelöscht)

Einfache FOR Schleife in JavaScript.jpg


Da meine Kenntnisse in JavaScript eher begrenzt bis nicht vorhanden sind, versuche ich gerade, es logisch zu verstehen.

Wenn Du jedoch ein konkretes Beispiel an den Support von Mobirise im Hersteller-Forum schicken könntest, das man tatsächlich in Mobirise anwenden würde und damit einen Bug nachweisen könntest, wäre das eine große Hilfe für die gesamte Community.

Ich kann es nicht melden, da ich nicht genau verstehe, was Du kritisierst. Meiner Meinung nach ist das Löschen identischer Skripte, wie es auch von Mobirise durchgeführt wird, korrekt und nicht als Fehler anzusehen.


P.S.:

Im Übrigen bleibt auch noch anzumerken, dass ja nun die meisten Skripte nicht in Mobirise-Blöcke gehören, sondern in die Seiteneinstellungen von Mobirise, also z.B. zwischen die <head> Tags oder auch an das Ende vom <body> Tag. In die Blöcke gehört eigentlich immer nur die Ausgabe vom Ergebnis. Dort wird von Mobirise alles zugelassen und nichts gelöscht - eben auch 3 x das gleiche Skript :eek:

Nur bei diesen APIs, wie eben solch einem Shop, ist das immer so eine Sache, derweil da meist alles über dieses eine Skript läuft.


Scripts in Seiteneinstellungen.jpg
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste