[编辑:我找到了一个简单的解决方法,它位于下面的解决方案中]
我最近向Apple报告,更新到IPADOS 17.2后,Safari在更新元素的innerHTML时会忽略
<br>
标签。
适用于除 IPADOS 17.2 上的 Safari 之外的所有其他浏览器的功能示例:
function trace(){
//I got used to using trace when programming in AS3
var html = " ";
var el = document.getElementById("traceOut");
var argLen = arguments.length;
if(argLen!==0){
--argLen; //take away one to get rid of comma
let i=0;
while(i !== argLen){
html += arguments[i++] + " , ";
}
html += arguments[i] + "<br>";
el.innerHTML += html;
}else{
el.innerHTML = html;
}
}
不确定它是否不仅仅影响 iframe,因为我刚刚发现它,而且我还没有解决方法。
在苹果解决这个问题之前,这会很烦人,所以如果其他人注意到了这一点,你的解决方法是什么?
这是奇怪的行为!
好吧,我发现这个问题是由于 Safari 在更新到 IPADOS 17.2 后,在将position:absolute应用于*
后渲染
<br>
元素而引起的
*{position:absolute}
这使得它与其他浏览器不同,它也通过绝对计算来影响
<br>
元素。
我的解决方案是修改CSS,添加
br{position:relative;}
工作起来就像一个魅力,但它是一个空白标签,通常不应该被影响,所以事实上它必须存在有点烦人。