【问题标题】:How can I escape a JS variable when outputting PHP?输出PHP时如何转义JS变量?
【发布时间】:2015-12-22 23:25:06
【问题描述】:

输出PHP时如何转义JS变量?

$output = '<script type="text/javascript">
               var myVal = jQuery(this).val();
               var myVar = <img src=\"myVal\" />
          </script>';

当我输出这个时,myVal(javascript 变量)输出为文字字符串,而不是变量。

【问题讨论】:

    标签: javascript php string variables escaping


    【解决方案1】:

    字符串在 javascript 中需要引号

    $output = '<script type="text/javascript">
                   var myVal = jQuery(this).val();
                   var myVar = \'<img src="\' + myVal + \'" />\';
               </script>';
    

    通常最好使用 .js 文件,而不是直接使用 PHP 输出 javascript。
    另请注意,示例中的this 只是window,它没有任何价值

    【讨论】:

    • 他们真的不希望 myVal 成为 img 标签中的变量引用吗?
    • 你在错误的地方关闭了",但这确实有效:var myVar = \'&lt;img src="\' + url + \'" /&gt;\';
    【解决方案2】:

    我认为你在寻找什么:

    $output = '<script type="text/javascript">
                   var myVal = jQuery(this).val();
                   var myVar = \'<img src="+myVal+" />\'
               </script>';
    

    myVal 输出为文字字符串,而不是变量。因此您应该使用+ 符号将变量与字符串连接起来。

    希望这会有所帮助。

    【讨论】:

    • myVal 是之前的 javascript 变量,没有 PHP 变量。我想,所以这不是必需的
    • 您应该使用+ 符号将变量与字符串连接起来,查看我的更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多