通过 HTML 将复杂变量传递给 javascript 的正确方法

2024-05-25

我试图摆脱使用 PHP 的 htmlentities,但我在这里停止了:

<?php
echo '<img ... onclick="MP.view(\''.$i->name.'\') />';
?>

但后来我想,我不做替换和检查特殊字符,而是只 JSON 整个对象。

<?php
echo '<img ... onclick="MP.view('.json_encode($i).') />';
?>

这提供了一个非常不受欢迎的结果,其中包含大量双引号。 那么我应该怎么做呢?我应该为每个图像分配一个数字唯一的 id 并只传递该 id,然后从 JS 数组中查找其余数据吗?


在这种情况下,正确的做法是:

 htmlspecialchars(json_encode($var), ENT_QUOTES, "UTF-8")

htmlspecialchars http://php.net/htmlspecialchars将任何双引号转换为正确的 HTML 转义符,使生成的字符串适合大多数属性。这ENT_QUOTES参数还处理单引号;但在您的示例中可能不需要它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 HTML 将复杂变量传递给 javascript 的正确方法 的相关文章

随机推荐

  • Bash 脚本:将数组作为参数传递给函数并打印数组

    我将一个数组传递给一个函数并尝试打印该数组的每个元素 下面是数组参数周围带有引号的代码片段 bin bash print array array for i in array with quotes do echo i done ar 1
  • 当多个元素具有相同的 ID 值时,jQuery 如何工作?

    我从 Google 的 AdWords 网站获取数据 该网站有多个具有相同元素的元素id 您能否解释一下为什么以下 3 个查询没有得到相同的答案 2 现场演示 http jsfiddle net P2j3f 1 HTML div span
  • 有没有办法记录 rpm 完成的活动?

    我正在尝试记录我的 rpm 完成的活动 但无法找到方法来执行此操作 我正在寻找某种方法来通过规范文件本身来完成此操作 如果我的 rpm 执行 5 个步骤 我需要一种方法将这些步骤及其结果记录到日志中 经过简短的谷歌搜索后我发现了这个 htt
  • 设备的临时协同设计在 Studio 中成功,但在 Jenkins 中失败

    我有一个支持 Android 和 iOS 的 Xamarin Forms 应用程序 我已经生成了 Jenkins 版本来编译它们 所有 Android 构建都可以工作 iOS 调试版本编译良好 然而 Ad Hoc 构建无法完全针对 iPho
  • ReactJS 中的组件之一出现“必须返回有效的 React 元素(或 null)”错误

    我的代码是这样的 var data id 1 taskName Pete Hunt standarDescription This is one comment emplComment meaaow I am meeawo empRatin
  • 呼叫转移

    我想将所有拨打我号码的呼叫转接至新的预定义号码 自动地 可以转接来电吗 也许至少对于 Froyo 来说是可能的 我找到了名为 Easy Call Forwarding 的应用程序 http www appstorehq com easyca
  • 如何使用 Materialise CSS 将文本输入居中?

    我试图使用 Materialise CSS 将输入文本居中 但 center 和 center align 类似乎没有效果 我不知道我在这里错过了什么 div class section div class row center align
  • HTTP2 推送的网络字体未使用

    我正在发送一个Link在 HTTP2 响应中预加载标头 像这个 Link script main js h 1795387974 gt rel preload as script font sourcesanspro regular wof
  • 从实时照片中提取视频部分

    有谁知道如何从实时照片中提取视频部分 我正在开发一个将 Live Photos 转换为 GIF 的应用程序 第一步是从 Live Photo 中获取视频文件 看起来这应该是可能的 因为如果你将手机插入 Mac 你就可以看到单独的图像和视频文
  • Python/Scipy 2D 插值(非均匀数据)

    这是我上一篇文章的后续问题 Python Scipy 插值 地图坐标 https stackoverflow com questions 5124126 python scipy interpolation map coordinates
  • 如何延长 django-redis 中的缓存 ttl(生存时间)?

    我正在使用 django 1 5 4 和 django redis 3 7 1 我想延长缓存的 ttl 生存时间 当我取回它时 这是示例代码 from django core cache import cache foo cache get
  • 如何设计具有主键和多值属性的表?

    我对数据库设计很感兴趣 现在正在阅读相应的文献 通过这本书 我遇到了一个让我感到不确定的奇怪例子 有一个关系 在此表中 我们有一个复合主键 StudentID Activity 但ActivityFee部分依赖于表的key Activity
  • 简单 CAE 的问题

    看起来简单的 CAE 不适用于 Carvana 数据集 我正在尝试对 Carvana 数据集进行简单的 CAE 你可以下载它here https www kaggle com c carvana image masking challeng
  • 如何知道 PHP require_once() 语句中使用的正确路径

    正如许多人一样 我在 Web 应用程序的根目录中有一个 config php 文件 我想将其包含在几乎所有其他 php 文件中 所以他们中的大多数都有这样的一行 require once config php 或有时 require onc
  • 如何在 boost::python 嵌入式 python 代码中导入模块?

    我正在使用 boost python 将一些 python 代码嵌入到应用程序中 我能够正确评估打印语句或其他表达式 但是当我尝试导入模块时 它没有导入并且应用程序正在退出 此外 嵌入代码中的 globals 函数调用也会产生运行时错误 i
  • 如何从 Azure Web 应用程序中删除过多的响应标头信息?

    我有一个部署在 Azure Web 应用上的 MVC 项目 我正在尝试删除过多的标头信息 我尝试删除此信息的原因是因为这是标准的安全实践 参考 http www troyhunt com 2012 02 shhh dont let your
  • 背景大小:封面在 Google Chrome 中突然停止工作?

    还有其他人有这个问题吗 我以创建网站为生 有些网站使用了 css 属性background size cover 大约 1 周前突然间 所有具有此属性的网站都不再在 Google Chrome 中正确显示 所有其他浏览器都工作正常 还有其他
  • 什么是“非阻塞”并发?它与普通并发有何不同?

    什么是 非阻塞 并发 它与使用线程的普通并发有何不同 为什么不在所有需要并发的场景中都使用非阻塞并发呢 使用非阻塞并发有开销吗 我听说Java中可以实现非阻塞并发 我们是否应该在特定场景下使用此功能 将这些方法之一与集合一起使用是否有区别或
  • 安装时反应 spring 错误

    你好 我有这个问题 如果我想将react spring安装到我的react项目中 它只会弹出一堆依赖项错误和警告 我不知道该怎么办 我试图检查react spring的文档 但找不到任何东西 我在 stackoverflow 上检查了几页
  • 通过 HTML 将复杂变量传递给 javascript 的正确方法

    我试图摆脱使用 PHP 的 htmlentities 但我在这里停止了 但后来我想 我不做替换和检查特殊字符 而是只 JSON 整个对象 这提供了一个非常不受欢迎的结果 其中包含大量双引号 那么我应该怎么做呢 我应该为每个图像分配一个数字唯