【问题标题】:JavaScript outerHTML encodes URL-stringJavaScript outerHTML 编码 URL 字符串
【发布时间】:2017-11-20 05:38:03
【问题描述】:

我正在尝试将图像的 src 属性设置为我也在 JS 中生成的 URL。 URL 包含几个用“&”链接的参数,但是当获取元素的外部 HTML 作为字符串值时,所有的“&”都被替换为“&”,使得 URL 无用。为什么会发生这种情况?我必须替换解决它的所有事件?

var img = $("<img>");
img.attr("src","/test?param1=1&param2=2");
console.log(img[0].outerHTML); //printing <img src="/test?param1=1&amp;param2=2">

从该对象获取 src 属性会显示原始字符串,因此我相信在访问 outerHTML 时该值已被编码。

【问题讨论】:

  • outerHTML 的用例是什么?
  • 它基本上是一个为相当特殊用途生成 HTML 代码的编辑器,我认为没有更好的方法来做到这一点。

标签: javascript jquery url url-encoding url-parameters


【解决方案1】:

这只是使用 outerHTML 记录 img 的结果,因为该函数会在字符串输出之前对其进行序列化。在下面的示例中,我只是记录元素,您将看到图像源是正确的。此外,如果您在页面上输出图像,它也有正确的来源。

因此,除了记录输出的方式之外,您的代码没有任何问题。

var img = $("<img>");
img.attr("src","http://www.placecage.com/gif/284/196?param1=1&param2=2");
console.log(img[0]);
$("div").append(img);
<div></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 好吧,你是对的,我在其他地方发现了问题。它被序列化了,因为我正在使用 text() 设置文本框内容,因此可以复制 HTML 代码。有没有另一种方法来显示纯 HTML 代码而不更改其内容?
猜你喜欢
  • 1970-01-01
  • 2023-04-11
  • 2021-05-28
  • 2017-05-17
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多