Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将javascript函数输出分配给液体变量

将javascript函数输出分配给液体变量
EN

Stack Overflow用户
提问于 2020-09-05 22:45:44
回答 1查看 3.6K关注 0票数 0

如果图像URL存在于javascript中,我将尝试验证它。因此,我在javascript中添加了这个代码,它接受一个URL并返回http状态代码。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function imageExists(image_url){
    var http = new XMLHttpRequest();
    http.open('HEAD', image_url, false);
    http.send();
    return http.status != 404;
}

在液体模板中,我想检查图像URL是否存在,然后显示如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="variant-cat-attributes">
  {% assign tags = product.metafields.product_meta.tag | split: "," %}
  {% for tag in tags %}
      <div class="item">
      {% capture tag_slug %}{{ tag | replace: " ", "_"}}{% endcapture %}
      {% assign img_png = 'tag' | append: '-' | append: tag_slug | append: '.png'%}
      {% capture png_exists %}<script>imageExists({{ img_png }})</script>{% endcapture %}
      {% if png_exists%}
        <img src="{{ img_png | file_img_url: '32x32' }}" />
      {% else %}
        {% assign img_jpg = 'tag' | append: '-' | append: tag_slug | append: '.jpg'%}
        {% capture jpg_exists %}<script>imageExists({{ img_jpg }})</script>{% endcapture %}
        {% if jpg_exists%}
          <img src="{{ img_png | file_img_url: '32x32' }}" />
        {% else %}
          {% assign img_default = 'tag' | append: '-' | append: 'default' | append: '.png'%}
          <img src="{{ img_default | file_img_url: '32x32' }}" />
        {% endif %}
      {% endif %}
      <p class="item-name">{{ tag | capitalize }}</p></div>
 {% endfor %}
</div>

我刚刚开始理解液体,所以我不知道这样做是否正确。但是,这段代码所发生的情况是,脚本标记被作为字符串来处理,并且其中的代码没有运行。

png_exists = imageExists({{ img_png }})

我该怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-05 23:06:28

你是混合JS和液体,这是可以的,如果你只是通过液体含量。

目前,液态代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{% capture png_exists %}<script>imageExists({{ img_png }})</script>{% endcapture %}

png_exists => <script>imageExists(http://asset_img_url.jpg)</script>

您不能执行Javascript代码,并且期望finish知道它,Javascript是在液体之后执行的,所以液态完成它的逻辑,Javascript之后会运行它的代码。

所以你不能在液体中使用javascript功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63761484

复制
相关文章
将hex printf输出存储到变量
I have to round off a float to decimal. After rounding off, I should convert this number to hexadecimal. I think I got the round off part okay with round()
iOS程序应用
2022/11/10
1.3K0
javascript——函数、变量和方法
当代码出现有规律的重复之后,可以利用函数,定义变量,调用方法,不用去重复的改动代码,只需要进行函数的修改。基本上所有的高级语言都支持函数,javascript也不例外,它可以像变量一样被使用,方便且强大,因此本文对js函数进行系统的学习,并在学习过程中做了详细的笔记以及样例。
子舒
2022/06/09
1.2K0
javascript——函数、变量和方法
JavaScript 教程「2」:注释、输入输出、变量
为了提高代码的可读性,我们往往需要在代码中添加一些额外的信息,但是我们又不想让这些信息影响到代码的执行。这时候,我们就需要使用到注释。JavaScript 中,主要有两种注释,一种是单行注释,另一种则是多行注释,和 Java 中的注释很相似。
村雨遥
2022/05/23
1.2K0
JavaScript 教程「2」:注释、输入输出、变量
JavaScript-变量/函数声明提升
(1)如上定义了一个名为test的变量,但未给这个变量进行初始化(也就是没有赋值),此时其默认初始化值为 undefined。
WEBING
2019/03/13
1.1K0
JavaScript-变量/函数声明提升
简洁的javascript编码(一)--变量、函数
一、变量 使用语义化的变量名称 Bad const yyyymmdstr = moment().format('YYYY/MM/DD'); Good const currentDate = moment().format('YYYY/MM/DD'); ---- 使用可搜索的名称 通常我们读代码比写得多,所以代码都可读性以及可搜索性非常重要。如果对变量不负于语义化、易理解的名字,代码的阅读者将非常痛苦。buddy.js以及ESLint能够帮助我们定位未命名的常量。 Bad
用户1097444
2022/06/29
1.5K0
简洁的javascript编码(一)--变量、函数
简洁的javascript编码(一)--变量、函数
现代浏览器已经在运行时做了很多的优化,因此很多时候如果我们要遵循那些流传已久的优化策略不过是浪费时间。可以参考这个来获取建议的优化要点。 Bad:
IMWeb前端团队
2019/12/04
1.3K0
JavaScript变量提升:函数提升要比变量提升更猛
为什么我调换声明顺序,结果还是输出以 var 形式声明的函数的值? 有人回答我说 "啊,变量提升呀...",我最开始的理解,就算变量提升,第一种情况提升之后,应该是这样啊:
yuezhongbao
2019/03/13
6210
简洁的javascript编码(一)--变量、函数
本文作者:IMWeb jaychen 原文出处:IMWeb社区 未经同意,禁止转载 一、变量 使用语义化的变量名称 Bad const yyyymmdstr = moment().
IMWeb前端团队
2018/01/08
2.1K0
简洁的javascript编码(一)--变量、函数
JavaScript 输出
如需从 JavaScript 访问某个 HTML 元素,您可以使用 document.getElementById(id) 方法。
陈不成i
2021/07/15
5020
JavaScript 基础(五) 函数 变量和作用域
函数定义和调用    定义函数,在JavaScript中,定义函数的方式如下:       function abs(x){         if(x >=0){           return x;         }else{           return -x;         }       }   上述abs() 函数的定义如下:     function 指出这是一个函数定义;     abs 是函数的名称;     (x)
用户1197315
2018/01/22
9550
详解JavaScript中的变量提升/函数提升
先有鸡还是先有蛋:直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。但实际上这并不完全正确,有一种特殊情况会导致这个假设是错误的。
用户10106350
2022/10/28
1.5K0
JavaScript 变量
JavaScript 是一种弱类型语言,javascript的变量类型由它的值来决定。 定义变量需要用关键字 var
Devops海洋的渔夫
2019/06/02
5010
Javascript作用域问题的构造函数的变量
构造函数new对于使用。代表创建对象。此外,它可以被用作普通的函数调用,因为它也是一个功能。
全栈程序员站长
2022/07/06
9630
python 变量,输入,输出
2.0 注释 python的注释方法 """ 多行注释 """ #单行注释 2.1 变量 问:为什么要有变量? 为某个值创建一个“外号”,以后在使用时候通过此外号就可以直接调用。 创建一个变量 name = "gkf" #name是变量名 等号就是声明(或赋值) "gkf"是变量的值 age = 18 #age是标量名 等号就是声明(或赋值) 18是变量的值 2.2 变量名命名规范 可以使用字母数字下滑线组合 如: name ="gkf" num_1 = 318 或 _ho
py3study
2020/01/15
2.3K0
python 变量,输入,输出
JavaScript(变量)
Java中定义变量时需要声明所定义变量的类型,所以在Java中变量是强类型语言,即在开辟内存变量存储空间时,定义了内存将来存储的数据类型,只能存储固定类型的数据。
全栈开发日记
2022/05/12
3120
JavaScript(变量)
javascript -- 变量
工作中发觉原生 js 还有待加强,只好再啃一遍高程3了。 ECMAScript的变量是松散类型的,所谓松散类型就是(变量)可以用来保存任意类型的数据。换句话说每个变量仅仅是在特定的时间内保存值的占位符而已。 所谓特定的时间就是变量的生命周期。 关于生命周期就要说到‘作用域’,进而得说‘作用域链’。此处只做简单介绍,后面会详细介绍作用域和作用域链。 js中没有块状作用域( if语句 ),只有全局作用域和函数作用域。 (var定义的变量将称为该作用域中的局部变量 即全局下就是全局变量,函数内就是局部变量) 全局
大当家
2018/06/28
6760
JavaScript——变量
var是一个JS关键字,用来声明变量(variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管。
岳泽以
2022/10/26
5270
JavaScript变量
本质:变量是程序在内存中申请的一块用来存放数据的空间。类似酒店的房间,一个房间就可以看做是一个变量。
星辰_大海
2020/09/30
6730
JavaScript 变量
有个叫卡卡西的人在旅店登记的时候前台让他填一张表,这张表里的内容要存到电脑上,表中的内容有:姓名、年龄、邮箱、家庭住址和工资,存储之后需要把这些信息显示出来,所显示的内容如下:
用户9615083
2023/02/06
4500
点击加载更多

相似问题

将液体赋值给javascript变量

10

将php输出(ajax)分配给javascript变量

13

将函数输出输出分配给python中的变量。

14

R将函数的输出分配给变量

12

宏函数将输出分配给宏变量

39
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文