【问题标题】:How to store css code in a php variable to be used with Javascript如何将 css 代码存储在 php 变量中以与 Javascript 一起使用
【发布时间】:2012-03-08 03:31:30
【问题描述】:

我正在开发一种产品,我将提供的选项之一是能够从可靠的来源(例如 ColorZilla)复制和粘贴您自己的 CSS 渐变代码。

如何将此类代码保存在 PHP 对象中(用作默认设置)并在 javascript/jquery 代码中输出,同时保留代码的编程意义。我尝试使用“addslashes()”无济于事。

目前,我有:

$default_options = array(
        'header_wrap_grad'          =>          '
                                            background: rgb(169,3,41); /* Old browsers */
                                            background: -moz-linear-gradient(top,  rgba(169,3,41,1) 0%, rgba(143,2,34,1) 44%, rgba(109,0,25,1) 100%); /* FF3.6+ */
                                            background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(169,3,41,1)), color-stop(44%,rgba(143,2,34,1)), color-stop(100%,rgba(109,0,25,1))); /* Chrome,Safari4+ */
                                            background: -webkit-linear-gradient(top,  rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* Chrome10+,Safari5.1+ */
                                            background: -o-linear-gradient(top,  rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* Opera 11.10+ */
                                            background: -ms-linear-gradient(top,  rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* IE10+ */
                                            background: linear-gradient(top,  rgba(169,3,41,1) 0%,rgba(143,2,34,1) 44%,rgba(109,0,25,1) 100%); /* W3C */
                                            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr=\'#a90329\', endColorstr=\'#6d0019\',GradientType=0 ); /* IE6-9 */
                                            ',

然后在我得到的标签内:

$('#header-wrap-grad').attr('value', '<?php echo addslashes($default_options['header_wrap_grad']); ?>');

#header-wrap-grad 是我试图用变量中的 css 代码填充的文本区域。但是,这是行不通的。当我尝试回显变量时,出现此错误“Unexpected token :”。

有人能指点我正确的方向吗?

谢谢。

【问题讨论】:

    标签: php javascript jquery variables gradient


    【解决方案1】:

    您正在创建一个 JavaScript 字符串,因此请使用 json_encode(并且不要使用引号):

    $('#header-wrap-grad').attr('value', <?php echo json_encode($default_options['header_wrap_grad']); ?>);
    

    【讨论】:

      【解决方案2】:

      字符串中的换行符有问题,它们会破坏 JS 代码。

      您可以在 PHP 中使用 rawurlencode 对字符串进行编码,在 JS 中使用 decodeURIComponent 对字符串进行解码。

      $('#header-wrap-grad')
       .attr('value', 
          decodeURIComponent('<?php echo rawurlencode($default_options['header_wrap_grad']); ?>'));
      

      【讨论】:

        猜你喜欢
        • 2017-09-01
        • 2014-06-03
        • 1970-01-01
        • 1970-01-01
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        相关资源
        最近更新 更多