JavaScriptで文字列として受け取るため、エスケープしたい


・他言語(PHP)から渡した内容を、JavaScriptで文字列として受け取りたいです  
・渡す内容には、HTMLタグ、改行、""などが含まれているため、現状では文法エラーになります

・JavaScriptで文字列として受け取るためには、どういう風にエスケープすれば良いでしょうか？  
(障害になるものは全て削除して構わないです)  
・受け取る側のJavaScriptではなく、渡す側のPHPで処理した方が良いのでしょうか？




手っ取り早いのは文字列を`JSON`に変換してしまう方法です。

[code]

    <?php 
    
    $str = <<<EOD
    <div>
        <a href="example.com"></a>
    </div>
    EOD;
    
    echo json_encode([$str]); // => ["<div>\n\t<a href=\"example.com\"><\/a>\n<\/div>"]
    
[/code]

[code]

    var str = "<div>\n\t<a href=\"example.com\"><\/a>\n<\/div>";
    alert(str);
[/code]




手っ取り早いのは文字列を`JSON`に変換してしまう方法です。

[code]

    <?php 
    
    $str = <<<EOD
    <div>
        <a href="example.com"></a>
    </div>
    EOD;
    
    echo json_encode([$str]); // => ["<div>\n\t<a href=\"example.com\"><\/a>\n<\/div>"]
    
[/code]

[code]

    var str = "<div>\n\t<a href=\"example.com\"><\/a>\n<\/div>";
    alert(str);
[/code]

