【问题标题】:Less js modifyVars does not work with string pathLess js modifyVars 不适用于字符串路径
【发布时间】:2015-01-06 22:50:04
【问题描述】:

我尝试使用更少的 js 和更少的可用字符串路径 使用自定义修改变量 代码

available.less

  @image-path : "/assets/images";

  @bg-image : "/bg/01.png";

style.less

  @import "available.less";

  body{
    background: url('@{image-path}@{bg-image}') repeat top left;
 }

在 JavaScript 中

    less.modifyVars({
      '@bg-image' : "/bg/08.png"
     });

我收到错误 ParseError: Unrecognized input

    @bg-image: /bg/08.png;

如何解决

所以如果我将 modifyVars 更改为

    less.modifyVars({
     '@bg-image' : "'/bg/08.png'"
    });

用双引号+单引号将值换行!但我不需要这个修复,因为 modifyVars 我通过 jquery 获取表单 html 元素

【问题讨论】:

  • 如果可行,为什么不将表单元素中的输入用引号括起来?
  • 我的元素太多了,比如颜色,字体大小......所以当我将所有这些值包装在我的函数中时,bg image modifyvars 就可以正常工作,白色颜色,字体大小...不工作,我认为只需要将输入包装为字符串或路径!你能给我一些解决方案吗@PatrickGunderson
  • 您需要使用“escapeURIComponent”转义来自 html 表单的字符串
  • Uncaught ReferenceError: escapeURIComponent is not defined @PatrickGunderson 当我使用 encodeURIComponent 我得到 localhost:8080/project/asset/images%2Fbg%2F02.png not found localhost:8080/project/asset/images/bg/02.png right path ?另一种解决方案

标签: javascript jquery html less


【解决方案1】:

仅当字符串是 URL 时,才考虑在字符串周围添加引号。您可以测试您的字符串是否有 /:

if(field.value.indexOf("/") !== -1) {
          variables['@' + field.name] = '"' + field.value + '"';
}

另请参阅:ModifyVars issue when trying to change variables one by one

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2011-07-12
    • 2017-01-06
    • 2017-11-12
    相关资源
    最近更新 更多