2016-09-05 9 views
0

私のページの最初に、プロンプトが表示されます。このプロンプトは、以下のプロセス(データベースからデータをロードする)にとって重要です。サイトをリロードするためにF5を押すと、プロンプトが再びポップアップするはずです。 ChromeとEdgeでは正常に動作しています。 firefoxはページをリロードしても何も表示されません。 F5をもう一度押すと、プロンプトが定期的に表示されます。サイトをリロードするときにJavascriptのプロンプトが表示されない

は、ここに私のコードです:

機能:

<script> 
function feststellung(maxStationenanzahl) { 
    var station = window.prompt("Bitte Stationsnummer eingeben", ""); 
    if (station != null && station != "" && station <= maxStationenanzahl && isNaN(station) == false) { 
     location.href = "station.php?stationsnr=" + station; 
    } 
    else { 
     alert("Die Eingabe ist Keine Zahl, entspricht nicht der Stationsnummer oder ist leer"); 
     location.reload(); 
    } 
} 

コール:

if(isset($_GET['stationsnr']) && $_GET['stationsnr'] != ""){ 
    echo("<body>"); 
} 
else{ 
    echo("<body onload='feststellung(".$letzte_aufgabe.")'>"); 
} 

どのようにFirefoxでこの問題を解決するには?

答えて

0
  1. body onload inlineを使用しないでください。

は、テストは次のように書くことができますページをリロードせずにAjaxのデータ:

  • はちょうど</body>タグの前に必ず

  • より良いを実行するために if("" == trim($_GET['stationsnr'])){ echo "<script>feststellung('".$letzte_aufgabe."')</script>"; }

    を持って

    var reg = /^\d+$/; 
    function feststellung(maxStationenanzahl) { 
        var station = window.prompt("Bitte Stationsnummer eingeben", ""); 
        if (station.trim() !="" && reg.test(station) && parseInt(station,10) <= maxStationenanzahl) { 
        location..replace("station.php?stationsnr=" + station); 
        } 
        else { 
        alert("Die Eingabe ist Keine Zahl, entspricht nicht der Stationsnummer oder ist leer"); 
        location.reload(); 
        } 
    } 
    
  • 関連する問題