Javascript <;br>;渲染不正确
我通过Socket.io加载数据,然后将其包装在一些HTML中,然后使用DOMParser对其进行解析,将其添加到我的容器中,但被忽略了 这是容器: 这是源代码Javascript <;br>;渲染不正确,javascript,html,dom,Javascript,Html,Dom,我通过Socket.io加载数据,然后将其包装在一些HTML中,然后使用DOMParser对其进行解析,将其添加到我的容器中,但被忽略了 这是容器: 这是源代码 <div webm-query="Lina.httpd.Access" webm-display="<span>%v</span><br />"> <span>212.142.132.240: GET / HTTP/1.1 -> 200</span><
<div webm-query="Lina.httpd.Access" webm-display="<span>%v</span><br />">
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
<span>212.142.132.240: GET / HTTP/1.1 -> 200</span><br></br>
</div>
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
212.142.132.240:GET/HTTP/1.1->200
通过生成
var data = ((Properties.Modifier && webm.Modifier[Properties.Modifier]) ?
webm.Modifier[Properties.Modifier](Data) : Data);
var html = (Properties.Display) ? "<div>"+replaceAll("'", "\"", replaceAll("%k", Query, replaceAll("%v",data, roperties.Display)))+"</div>" :data;
return htmlString = (Properties.Display) ? new DOMParser().parseFromString(html, "text/xml") : data;
var data=((Properties.Modifier&&webm.Modifier[Properties.Modifier])?
webm.Modifier[Properties.Modifier](数据):数据);
var html=(Properties.Display)?“+replaceAll(“”,“\”,replaceAll(“%k”,查询,replaceAll(“%v”,数据,roperty.Display)))+”:数据;
返回htmlString=(Properties.Display)?new DOMParser().parseFromString(html,“text/xml”):数据;
我相信
标记是自动关闭的,所以你不应该做
,而是应该做
是的,但是
工作并且文档.createElement(“br”);
也输出
。我尝试了
而不是
,并且出现了同样的问题。@BeryJu:根据,br
元素的结束标记甚至被禁止:“开始标记:必需,结束标记:禁止”。删除它,看看它是否有效。事实上,这是问题所在,我用这个if解决了它(Child.localName==“br”){Node.appendChild(document.createElement(“br”);}else{Node.appendChild(Child);}
@BeryJu很高兴看到您的问题得到了解决。@BeryJu-出现问题的原因是您正在将生成的字符串解析为XML。这意味着您的br元素(以及span和div)在空命名空间中而不是html命名空间中,因此它们被视为未知元素而不是换行元素。如果将字符串解析为html,则不会出现问题。对我来说效果很好(FIDDLE)[@Rhea是的,我知道,但可能是因为我用容器添加了它们。appendChild
@BeryJu:好吧,如果你展示了你是如何实际生成输出的(例如,appendChild
调用),人们会帮助你。你说的“这是源代码”,很明显的意思是“我正在直接使用这个标记”。“显然你没有。@t.J.Crowder对不起,我把它编辑了。@BeryJu:当你在问题(或答案)中添加代码时,请正确标记。(这次我为你修正了它,但拜托,这不是你的第一个或第二个问题。)这里有一个方便的工具栏,在你写作/编辑时,右边有一个如何设置标注格式的工具栏。你在这里真的帮不了你自己。高质量的问题,花时间清楚地表达问题,吸引了高质量的答案。