为了账号安全,请及时绑定邮箱和手机立即绑定

innerHTML 不设置 SVG 元素的值

innerHTML 不设置 SVG 元素的值

汪汪一只猫 2021-10-14 12:46:29
我有一个正在运行的 Angular 7 应用程序,我想根据下拉选择更新文本元素的值。例如:如果文本元素的 id 为 10,则将文本的值从 'hi' 更新为 'hello'。我正在使用 setProperty innerHTML 来更新文本的值,它在 Chrome 中工作正常,但是如果我在 IE 中尝试相同的行为,文本值不会得到更新。<text id='10'>hi</text>svgElement: SVGElement;pathElement: HTMLElement;constructor(private renderer: Renderer2) { }this.pathElement = svgElement.querySelector(`[id='10']`);this.renderer.setProperty(this.pathElement, 'innerHTML', 'hello');
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

我没有意识到答案会很简单。实际上,不需要使用 renderer、setProperty、innerHTML 来设置 SVG 元素的值。我们可以简单地使用textContent来设置值。它适用于所有浏览器。


pathElement: SVGTextElement;


this.pathElement = svgElement.querySelector(`[id='10']`);

this.pathElement.textContent = 'hello'


查看完整回答
反对 回复 2021-10-14
?
慕容708150

TA贡献1831条经验 获得超4个赞

使用DomSanitizer


像这样尝试:


import { DomSanitizer } from '@angular/platform-browser'


constructor(private renderer: Renderer2, private domSanitizer: DomSanitizer){}


this.pathElement = svgElement.querySelector(`[id='10']`);

this.renderer.setProperty(this.domSanitizer.bypassSecurityTrustHtml(this.pathElement), 'innerHTML', 'hello');



查看完整回答
反对 回复 2021-10-14
  • 2 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信