更改svg元素只在某些情况下有效

Change svg element only works some of the times

本文关键字:情况下 有效 svg 元素 更改      更新时间:2023-10-20

我正在尝试使用javascript和html5为项目创建HMI。在第一个实验中,我只想更改svg文档中的一个文本元素。

svg对象在html中定义如下:

<object id="image-svg" width="800" height="800" type="image/svg+xml" data="image.svg"></object>

此脚本:

function update_txtPv( val )
{
    var imageSvgDoc = document.getElementById( "image-svg" ).contentDocument;
    var txtPv = imageSvgDoc.getElementById( "txtPv" );
    txtPv.textContent = val;
}
update_txtPv( "test" );

在加载页面时被调用一次。

问题是,如果我刷新页面十次,它只会将文本对象设置为"测试"大约三次。

如果我添加了警报("某事");在函数的开头,它起作用。

发生了什么事?

//John

所以。。。事实证明,在开始修改svg文档之前,我需要等待svg文档加载

最终使用了此线程中的解决方案。非常感谢Kaiido指出,在调用函数之前,我需要等待svg完成加载。