簡體   English   中英

如何在JavaScript回聲中轉義HTML

[英]How escape html in echo of javascript

我無法在echo中逃脫我的代碼JS:

echo "<script type='text/javascript'>
    // Initialiser l'objet.
    var tab_nb_match_par_user = ".json_encode($tab_nb_match_par_user).";
    var taille = 70;    
    console.log(tab_nb_match_par_user);
    for (var k in tab_nb_match_par_user){
        $('#img').append('<img src="stats_matching/' + k + '.gif" alt="' + k + '" title="' + k + '" width="' + taille + '" />');
        taille = taille-6;
    }
</scrip>";

而且我有以下跟隨錯誤: Uncaught SyntaxError: missing ) after argument list

使用HEREDOC代替echo。

echo <<<ENDOFSCRIPT
<script type='text/javascript'>

                    // Initialiser l'objet.
                    var tab_nb_match_par_user = ".json_encode($tab_nb_match_par_user).";
                    var taille = 70;    
                    console.log(tab_nb_match_par_user);
                    for (var k in tab_nb_match_par_user){
                        $('#img').append('<img src="stats_matching/' + k + '.gif" alt="' + k + '" title="' + k + '" width="' + taille + '" />');
                        taille = taille-6;
                    }
            </script>

ENDOFSCRIPT;

有關更多信息, 請參見https://wiki.php.net/rfc/heredoc-with-double-quotes

假設您只想將php實際填充到json部分中,為什么不回顯所需的位,而不是整個結構。 這是模板更好的做法。

<script type='text/javascript'>
    // Initialiser l'objet.
    var tab_nb_match_par_user = "<?php echo json_encode($tab_nb_match_par_user) ?>";
    var taille = 70;    
    console.log(tab_nb_match_par_user);
    for (var k in tab_nb_match_par_user){
        $('#img').append('<img src="stats_matching/' + k + '.gif" alt="' + k + '" title="' + k + '" width="' + taille + '" />');
        taille = taille-6;
    }
 </script>

您在結束腳本標記中也缺少“ t”。

echo <<<END
    <script type="text/javascript">
        // Initialiser l'objet.
        var tab_nb_match_par_user = ".json_encode($tab_nb_match_par_user).";
        var taille = 70;    
        console.log(tab_nb_match_par_user);
        for (var k in tab_nb_match_par_user){
            $('#img').append('<img src="stats_matching/' + k + '.gif" alt="' + k + '" title="' + k + '" width="' + taille + '" />');
            taille = taille-6;
        }
    </script>
END;

您需要使用反斜杠對代碼進行轉義:

echo "<script type='text/javascript'>

                        // Initialiser l'objet.
                        var tab_nb_match_par_user = ".json_encode($tab_nb_match_par_user).";
                        var taille = 70;    
                        console.log(tab_nb_match_par_user);
                        for (var k in tab_nb_match_par_user){
                            $('#img').append('<img src=\"stats_matching/' + k + '.gif\" alt=\"' + k + '\" title=\"' + k + '\" width=\"' + taille + '\" />');
                            taille = taille-6;
                        }
                </scrip>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM