Button funktioniert nicht in IE11

  • Guten Morgen Zusammen,


    ich erzeuge eine dynamische Tabelle für eine Internetseite mittels php. Diese soll der Benutzer als xlsx herunterladen können. Nach erfolglosen Herumprobieren mit PHPSpreadsheet & co, bin ich auf ein JavaScript gestoßen, dass ich eingebunden hab und das für Microsoft Edge, Google Chrome und Mozilla Firefox auch funktioniert.


    Das zugrundeliegende Skript ist in PHP programmiert. Um das Javascript auszulösen verlass ich für den Button die php Datei, weil ich mich sonst nicht richtig auf die Funktion beziehen kann


    HTML
    1. ?>
    2. <p id="xportxlsx" class="xport"><input type="submit" value="Excel Download" onclick="doit('xlsx');"></p>
    3. <?php


    mit echo brauch ich ja entweder " oder ' um den button mit html zu beschreiben, und dieses ' brauch ich ja aber hinter um die Funktion richtig zu beschreiben.


    In IE11 ist Javascript auch aktiviert, aber wenn ich da auf den Button klick passiert einfach rein gar nichts. Muss man für IE11 irgendeine andere Programmierform verwenden?


    Viele Grüße


    Edit: Hab festgestellt, dass man im IE11 einfach Rechtsklick auf die Tabelle machen und kann und da Export to MS Excel hat. Gibt's hierfür ne Möglichkeit, einen button einzuführen der genau das ausführt?

    Das dahinterliegende Skript hinter dem Menüpunkt Export to MS Excel kann ich nicht finden.

  • Hab diesen alert auch in die ganzen Javascripte eingebunden, die ich mir lokal abgespeichert hab und über src zugreif.


    Code
    1. <script type="text/javascript" src="javascript/shim.min.js"></script>
    2. <script type="text/javascript" src="javascript/xlsx.full.min.js"></script>
    3. <script type="text/javascript" src="javascript/blob.js"></script>
    4. <script type="text/javascript" src="javascript/FileSaver.js"></script>


    auch die Meldungen kommen alle. Nachdem alle Javascripte ausgeführt werden beim Laden der Seite, muss es ja doch an dem Button liegen.

    Beziehungsweise werden die Javascripte scheinbar direkt ausgeführt, und der Button hat deswegen keine Funktion mehr?

  • Ich habe mal folgendes getestet... die JS mit einem kompletten https://---- einzubinden

    Code
    1. <script type="text/javascript" src="https://unpkg.com/xlsx/dist/shim.min.js"></script>
    2. <script type="text/javascript" src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
    3. <script type="text/javascript" src="https://unpkg.com/blob.js@1.0.1/Blob.js"></script>
    4. <script type="text/javascript" src="https://unpkg.com/file-saver@1.3.3/FileSaver.js"></script>

    und das scheint zu funktionieren.

  • Danke für deine Mühe. Das ändert jedoch bei mir gar nichts. Hab bei meiner Internetrecherche rausgefunden, das McAfee scheinbar manchmal auch was blockiert, aber das ist von der Firma vorgegeben und vorinstalliert. Unterm Strich werden ja die Skripten alle geladen, nachdem ich deinen Tipp mit dem alert ausprobiert hab.

  • getit.pngIch

    bin mir nicht sicher, aber es sieht für mich so aus, als würde aus den JS, die du eingebunden hast, noch weitere Daten vom Server eingebunden....

    Zumindest wird das von der Konsole im FF so angezeigt ... und wenn ich

    https://unpkg.com/xlsx/dist/shim.min.js

    direkt aufrufe, werde ich zu

    https://unpkg.com/xlsx@0.13.3/dist/shim.min.js

    umgeleitet... wenn du 'shim.min.js' selbst hostest, dann könnte es ja sein, dass diese Um- Weiterleitung nicht funktioniert und die Probleme verursacht.

  • Bin mir mittlerweile ziemlich sicher, dass es aber genau daran liegt!

    Die Dateien https://unpkg.com/xlsx/dist/shim.min.js und https://unpkg.com/xlsx/dist/xlsx.full.min.js beinhalten keinen Code, sondern laden nur den Code, der sich in https://unpkg.com/xlsx@0.13.3/dist/shim.min.js und https://unpkg.com/xlsx@0.13.3/dist/xlsx.full.min.js befindet.


    Und wie schon erwähnt.. mit der vollen 'https:...' URL funktioniert es bei mir im IE 11.

  • Code
    1. <script type="text/javascript" src="https://unpkg.com/xlsx@0.13.3/dist/shim.min.js"></script>
    2. <script type="text/javascript" src="https://unpkg.com/xlsx@0.13.3/dist/xlsx.full.min.js"></script>
    3. <script type="text/javascript" src="https://unpkg.com/blob.js@1.0.1/Blob.js"></script>
    4. <script type="text/javascript" src="https://unpkg.com/file-saver@1.3.3/FileSaver.js"></script>


    Habs jetzt genauso eingebunden. Ändert sich bei mir leider trotzdem nichts, wenn es bei dir geht liegt es bei mir vielleicht doch an irgendeiner Firewall oder ähnlichem.

  • Das ist aber nicht der Code, der bei mir funktioniert.. du hast da schon Pfade geändert...

    Code
    1. <script type="text/javascript" src="https://unpkg.com/xlsx/dist/shim.min.js"></script>
    2. <script type="text/javascript" src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
    3. <script type="text/javascript" src="https://unpkg.com/blob.js@1.0.1/Blob.js"></script>
    4. <script type="text/javascript" src="https://unpkg.com/file-saver@1.3.3/FileSaver.js"></script>

    Das funktioniert bei mir!


    Wenn du in einem Firmen-Intranet sitzt, dann wäre das die naheliegendste Erklärung. Wende dich doch mal an einen der Admin - die müssten wissen, was 'ihr' Netz macht .

  • Ich habe den Code von Stackoverflow genommen und der funktioniert bei mir einwandfrei im IE11. Hast Du auch genau diesen Code verwendet oder hast Du ihn irgendwie modifiziert oder erweitert? Wenn letzteres, dann poste doch mal deine Version.

    Firewall als Problemursache halte ich für unwahrscheinlich, da Du ja beim Stand deines Postings #5 die JS-Dateien selbst gehostet hattest.

    Ich würde den Admin daraufhin befragen, ob irgend welche Funktionen im IE deaktiviert wurden, z. B. das lokale Speichern.

  • Ich benutze genau den selben Code:


    HTML
    1. <html>
    2. <head>
    3. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    4. <script type="text/javascript" src="javascript/shim.min.js"></script>
    5. <script type="text/javascript" src="javascript/xlsx.full.min.js"></script>
    6. <script type="text/javascript" src="javascript/blob.js"></script>
    7. <script type="text/javascript" src="javascript/FileSaver.js"></script>
    8. </head>
    9. <Body>


    PHP
    1. echo '<div id="container2">';
    2. echo '<table id = "data-table">';
    3. echo "<tr>";
    4. usw.



    Nur den Button hab ich leicht verändert und der steht bei mir oberhalb der Tabelle, weil diese zum Teil sehr groß ist (wird dynamisch je nach Benutzerauswahl erzeugt).


    HTML
    1. <p id="xportxlsx" class="xport"><input type="submit" value="Excel Download" onclick="doit('xlsx');"> <b> for Microsoft Edge, Google Chrome, Mozilla Firefox</b></p>


    Die JS Dateien hab ich auch, wie mir Sailor geraten hat zum Test mit den Hyperlinks komplett eingebaut, das hat aber zu keinem Erfolg geführt.

  • Sorry, da bin ich jetzt noch viel zu wenig Erfahrung.

    Was bedeutet in unkomprimierter Form? Ich hab die Skripte alle kopiert und in meine JS Dateien eingefügt um sie dann lokal zu besitzen und keine Verbindung auf externe Server geschieht.


    Im Debugger müsste dann ein Fehler kommen, warum der Button im IE11 keine Funktion hat?

  • Ja, den Debugger zu benutzen, erfordert schon etwas Erfahrung. Dieser zeigt auch nicht die Fehler direkt an, sondern man muss den Code Schritt für Schritt untersuchen, um den Fehler einzugrenzen und zu lokalisieren.

    Fällt mir nur noch ein, meine Empfehlung zu wiederholen, mit dem Admin zu sprechen und zu klären, ob der IE irgendwie modifiziert wurde, so dass dieses Skript nicht funktioniert.