<br> 在 ios/ipados 上更新 innerHTML 时被忽略

问题描述 投票:0回答:1

[编辑:我找到了一个简单的解决方法,它位于下面的解决方案中]

我最近向Apple报告,更新到IPADOS 17.2后,Safari在更新元素的innerHTML时会忽略

<br>
标签。

jsfiddle 链接

适用于除 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,因为我刚刚发现它,而且我还没有解决方法。

在苹果解决这个问题之前,这会很烦人,所以如果其他人注意到了这一点,你的解决方法是什么?

这是奇怪的行为!

ios safari innerhtml html-rendering
1个回答
0
投票

好吧,我发现这个问题是由于 Safari 在更新到 IPADOS 17.2 后,在将position:absolute应用于*

后渲染
<br>

元素而引起的
*{position:absolute}

这使得它与其他浏览器不同,它也通过绝对计算来影响

<br>
元素。

我的解决方案是修改CSS,添加

br{position:relative;}

工作起来就像一个魅力,但它是一个空白标签,通常不应该被影响,所以事实上它必须存在有点烦人。

© www.soinside.com 2019 - 2024. All rights reserved.