这是什么原因导致的,尝试了好几个浏览器都是这样,求大佬解答
尝试过增加结束标签
这是什么原因导致的,尝试了好几个浏览器都是这样,求大佬解答
尝试过增加结束标签
如果<source>
标签的type
属性被直接渲染出来,而不是被浏览器识别和应用,这通常意味着浏览器没有正确地解析该标签或者该标签所处的上下文不正确。<source>
标签通常应该作为<video>
或<audio>
元素的子元素使用,用来指定媒体资源。
首先,请确保你的<source>
标签是嵌套在<video>
标签内部的,并且<video>
标签有正确的结束标签</video>
。例如:
<video width="320" height="240" controls>
<source src="{$log['content']}" type="video/mp4">
您的浏览器不支持Video标签。
</video>
如果<source>
标签是<video>
标签的直接子元素,并且<video>
标签也有正确的结束标签,但问题仍然存在,那么可能的原因包括:
{$log['content']}
是某种模板引擎的变量替换语法,请确保它已经被正确地替换成了有效的视频资源URL。video/mp4
),并且服务器响应头中的Content-Type
也是正确的。<video>
和<source>
标签,但老旧的浏览器可能不支持。请确保你正在使用的浏览器是支持这些特性的最新版本。<source>
标签的src
属性值没有被错误地编码或转义。如果以上方法都不能解决问题,你可能需要提供更详细的代码和上下文信息,以便进一步分析问题所在。
临时解决就是模板变量放到js变量上,用js操作dom 赋值。
let videoSrc = `{$log['content']}`;
if(videoSrc){
let videoElem = document.getElementById('video');
if(videoElem){
let sourceElem = videoElem.getElementsByTagName('source');
if(sourceElem) {
sourceElem.setAttribute("src", videoSrc);
}
}
}
注:ES6字符串模板“\`\`”不兼容IE。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...
通义灵码:jsp html转义问题
1、使用JSTL的fn:escapeXml函数:
2、使用Apache Commons Lang库的StringEscapeUtils.escapeHtml方法 定义宏
3、使用内置的encodeForHTML方法(Java 8+)
因为你 log 的内容里有双引号,双引号和原来的双引号成对了,就会破坏 html 语义。
当然,要考虑的不只是双引号,这样直接往 html 里拼接字符串存在 XSS 注入风险。好在解决起来也简单,对 log 的内容进行防 XSS 过滤就行了(怎么过滤可以上网搜一下)。