【问题标题】:How to safely use "&" symbol in a javascript variable without it turning to "&"?如何在javascript变量中安全地使用“&”符号而不转向“&”?
【发布时间】:2022-01-04 05:04:04
【问题描述】:

我正在尝试执行以下代码:

<button onclick="increment()">Increment</button>
<div id="iframe">
<script>
var id = 139000;
var link='<iframe src="https://somewebsite.com/something.aspx?sa=1&pid=' + id + '" height="600px" width="100%" />';
function increment(){
id++;
document.getElementById('iframe').innerHTML = id + link ;
}
</script>
</div>

但在执行时,src="" 中的 &amp;amp; 会转换为 &amp;amp;,这会破坏原始 URL 并且不会到达所需的目的地。我在网上查了一下,但由于我是菜鸟,所以我无法弄清楚。请帮助我完成这项工作!

【问题讨论】:

  • 你不应该改变 iframe 元素的src 属性吗?
  • 没有 wdym?你能详细说明一下吗?
  • 我告诉过你我是菜鸟,对不起!
  • 以上代码在代码笔中工作。一个建议虽然您可以尝试使用反引号而不是单引号来定义链接变量。
  • innerHTML 进行转换。像这样创建 iframe。 const iframe = document.createElement('iframe'); document.getElementById('iframe').append(iframe); iframe.src='https://somewebsite.com/something.aspx?sa=1&amp;pid=' + id;.

标签: javascript html asp.net


【解决方案1】:

你需要做的就是

<button onclick="increment()">Increment</button>
<div id="iframe">
<script>
var id = 139000;
var link='<iframe src="https://somewebsite.com/something.aspx?sa=1&pid=' + id + 
'" height="600px" width="100%" />';
var new_link = link.replaceAll('&amp;','&');

function increment(){
id++;
document.getElementById('iframe').innerHTML = id + new_link;
}
</script>

【讨论】:

  • 好吧,已经尝试过了,它仍然将&amp;amp; 更改为&amp;amp;。是不是因为编辑。我正在尝试在 Blogger 上执行此操作。
  • 如果您正在寻找免费托管,请尝试使用 GitHub pages 而不是 Blogger,因为每个平台都有自己的 URL 解析规则
  • 好的!感谢您的回答!
  • 虽然我在浏览器中试过这个,但即使你的代码运行良好,没有将 & 更改为 &
  • 这就像设置 n = 1 然后想知道为什么 n 不是 7 ...替换不存在的字符在这里绝对没有任何作用。
【解决方案2】:

这绝对是博主的问题,发生的原因是:

字符“&”是一个 ISO HTML 保留字符,用于表示参数的开始。

为了克服这个问题,Blogger 编辑器将您输入的 &amp;amp;amp; 转换为 HTML 实体 &amp;amp;amp; ,当页面或 URL 在浏览器中呈现时,该实体将显示 &amp;amp;amp;,这样您就不必自己做吧。

【讨论】:

  • 否,但随后显示&amp;amp;amp;
猜你喜欢
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 2018-08-26
相关资源
最近更新 更多