为什么js字符串中的标签会被验证

2024-02-24

我有以下页面

<html>
<head>
    <script type="text/javascript" src="e01.js"></script>
</head>
<body>
<script type="text/javascript">
var obj={someHTML: "<script>alert('a');</script>rest of the html",  
               someOtherAttribute:"some value"};
    alert(obj.someHTML);
</script>
</body>
</html>

在我的对象的 someHTML 属性中</script>字符串中的标签。但浏览器将其读取为实际的关闭标记并关闭脚本元素。我在这里缺少什么吗? (在 ff 和 chrome 中尝试过)


HTML 在 Javascript 之前被解析并且独立于 Javascript。当前的浏览器行为是,一旦打开标签<script>找到后,浏览器将切换到“脚本数据状态”并将所有后续数据解释为脚本,直到</script>被发现。

哪里的</script>被检测到并不重要——在 JS 字符串、JS 注释、CDATA 部分甚至 HTML 注释中。

你需要让字符串看起来不像</script>到 HTML 解析器。最简单的方法是写<\/script> as in @Daniel https://stackoverflow.com/questions/3509818/why-script-tag-in-js-string-is-being-validated/3509843#3509843的回答。

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

为什么js字符串中的标签会被验证 的相关文章

随机推荐

  • 如何使用谷歌脚本检测两个单独行中的重复值?

    我正在尝试使用 Google 脚本和 Google 电子表格检测 B 列中的值是否已在 A 列中提及 这些列位于 2 个单独的工作表中 由于某种原因 我没有足够的经验来让它工作 提前谢谢 获取北欧 function insert e she
  • 使用不同的指针类型作为参数来转换函数指针

    我认为以下代码描述了我想要做的事情 具体来说 我希望将函数指针转换为通用函数类型 签名的唯一区别是指针类型不同 现在 我知道函数指针需要兼容的正如所讨论的这个问题 https stackoverflow com questions 5595
  • python 3 字符串格式化(对齐)

    我有一个代码 其输出应如下所示 hello 3454 nice 222 bye 45433 well 3424 对齐和正确的理由给我带来了问题 我在字符串 0 gt 7 中尝试了此操作 但只有具有特定位数的数字才可以 其他有一些数字的数字或
  • Android 中带手势(滑动功能)的 VideoView

    我想合并默认值视频查看 and 手势监听器 如果用户向左滑动则歌曲向后播放或向右滑动则歌曲向前播放 我想在 VideoView 上实现类似的方法 通过以下代码打开默认媒体播放器 Intent intent new Intent androi
  • pycosat中慢速dnf到cnf

    问题简述 有一个适当的输入pycosat https pypi org project pycosat 有没有办法加速从dnf到cnf的计算 或者完全绕过它 详细问题 我一直在看这个视频 https www youtube com watc
  • ARC 相当于自动释放?

    如果我有这个代码 MyCustomClass myCustomClass return MyCustomClass alloc init autorelease 这段代码保证返回的对象是自动释放的 在 ARC 中相当于什么 ARC 中没有类
  • HTTP PUT 的查询参数的 Curl 命令行编码

    我有多个查询参数想要使用curl 在 HTTP PUT 操作中发送 如何对查询参数进行编码 例子 curl X PUT http example com resource 1 param1 value 201 param2 value2 如
  • 如何使用 Express 和 connect-timeout 自定义超时响应?

    我想自定义在触发超时错误时发送给用户的响应 更具体地说 我想将它们重定向到静态页面 解释为什么会引发超时错误 我想写一些类似的东西 var express require express var timeout require connec
  • Laravel 无法验证用户身份

    userdata array email gt Input get email password gt Input get password if Auth attempt userdata echo SUCCESS else return
  • 格式化没有这样的文件或目录

    我试图使用 C 格式实用程序 std format 我尝试编译这个简单的程序 include
  • Cassandra 中分区键、复合键和集群键之间的区别?

    我一直在网上阅读文章以了解以下内容之间的差异key类型 但这对我来说似乎很难理解 例子肯定有助于更好地理解 primary key partition key composite key clustering key 对此有很多困惑 我会尽
  • 使用 jQuery,如何选择元素 id 以某个字符串结尾的所有元素?

    使用jQuery 如何选择其中的所有元素id属性以某个字符串结尾 有一个属性结尾为选择器 attr value http api jquery com attribute ends with selector 像这样 id somethin
  • 当重叠很少时找到重叠间隔

    我有一个巨大的数据库表n整数区间 例如 1 5 4 16 6434 114343 并且需要找出哪些间隔相互重叠 有丰富的SO的类似问题 https stackoverflow com questions 4542892 possible i
  • 为什么单字母 UDF 名称不能使用 C 或 R?

    我可以编写以下有效的 VBA 函数 Public Function C As Long C 5 End Function Public Function R As Long R 6 End Function 但如果不使用 VBA 项目或模块
  • 为什么将列表作为参数传递比传递生成器性能更好?

    我正在回答这个问题 https stackoverflow com questions 59925390 how to count different elements in list of lists 59925564 noredirec
  • 将点平面分成相等的两半[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 给定一个二维平面 其中有 n 个点 我需要生成一条线的方程 该线将平面分开 使得一侧有 n 2 个点 另一侧有 n 2 个点 我假设这些点
  • Rails - params[:commit] 的目的是什么

    我注意到 每次将 Rails 表单发送到服务器时 提交按钮的名称 通常是按钮上显示的字符串 都会包含在params散列为 提交 例如 最后一个条目 utf8 gt authenticity token gt eZABpBuW7afziDMU
  • 字符串函数如何计算字符串行中的分隔符

    我有一个如下所示的字符串行 A B C D E F G H I J K L M 这意味着分隔符 计数为 12 这条线是有效的 现在假设您有以下行 A B C D E F G H 该行也是有效的 因为它包含 12 个分隔符 其中存在 8 个值
  • Grails 和 SQLite

    尝试让 SQLite 与 grails 一起工作 我在网上找到的东西似乎有点过时 对 ivy 和插件等的引用 但基于这些 http stackoverflow com questions 1199512 grails sqlite http
  • 为什么js字符串中的标签会被验证

    我有以下页面 在我的对象的 someHTML 属性中字符串中的标签 但浏览器将其读取为实际的关闭标记并关闭脚本元素 我在