I have been developing a chat room User Interface and I have a question.
In my UI I am using a div as my textbox and have a max message length of 500. There is a counter to show how many characters you have left, like '245/500'. On Google, this works fine but on safari, if you type one letter then delete it the counter goes from 1 to 4 and not 1 to 0. This also breaks my placeholder for the div.
Your help is much appreciated.
Here is some example code, clone it, then run it in Safari then try Google.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <title>HTML Stuff</title>
    <style>
        #text-div {
            width: 200px;
            padding: 10px;
            max-height: 50px;
            background-color: rgb(197, 226, 252);
            overflow-y: scroll;
            overflow-x: hidden;
        }
        
        #text-div:empty:before {
            content: attr(data-placeholder);
            color: rgb(102, 101, 101);
        }
        
        #counter {
            font-weight: bolder;
            font-size: 50px;
        }
    </style>
</head>
<body>
    <div id="text-div" contenteditable="true" data-placeholder="This is a Placeholder"></div>
    <div id="counter">0</div>
</body>
<script>
    var text = document.getElementById('text-div')
    var counter = document.getElementById('counter')
    $('#text-div').on('input', () => {
        counter.innerHTML = text.innerHTML.length
    })
</script>
</html>