【发布时间】:2019-10-04 17:19:20
【问题描述】:
(注意:关于视频无法在 safari 上渲染有很多问题。这个问题是关于在 Safari 中使用 DOMParser 渲染视频。如果我使用 innerHTML 渲染视频,一切正常。) p>
我有通过DOMParser 呈现的最简单的 HTML 5 视频,如下所示:
var htmlStr = `
<video xmlns="http://www.w3.org/1999/xhtml" controls="">
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4"/>
Your browser does not support HTML5 video.
</video>
document.getElementById('test-vid').appendChild(doc.firstChild);
`;
var doc = new DOMParser().parseFromString(htmlStr, "text/xml");
这在 chrome 中运行良好,但在 Safari 中,视频不会被渲染。我只看到白屏。 但是,如果我通过 innerHTML 渲染它,一切正常并且视频会显示出来。
任何人都可以就 Safari 中的 DOMParser 有什么问题提出建议。 caniuse 显示 Safari 对 DOMParser 的完整支持。
在多个版本的 safari 上测试,即版本 12.1.1 (14607.2.6.1.1) 和版本 11.1 等。
【问题讨论】:
-
请注意,您可以使用 Stack Snippets 并将您的代码从 CodePen 复制并粘贴到其中。这样您就不会犯错误,例如将 JavaScript 放入 HTML 字符串变量中... ;)
-
@HereticMonkey 在很多情况下,您实际上可以在字符串中包含 HTML。模板字面量通常用于在 javascript 中存储 模板。
-
@MosèRaguzzini 当然,但这不是我所说的错误。我说过将 JavaScript 放在 HTML 字符串中。
DOMParser不会将其解析为 JavaScript,而只会解析为文本...无论如何,如果您将链接的 CodePen 与此处显示的代码进行比较,我的评论会更有意义。 -
OK 在 codepen javascript 在外面(包括 appenChild),我想错误是从笔复制/粘贴完成的
-
嗯,在 macOS Mojave 上使用 Safari v13.0.2 (14608.2.40.1.2) 就像一个魅力...
标签: javascript safari domparser