Please help me with this Please fix the full code: this code is supposed to work in a web browser (Client_side.js) const url = "http://localhost:3000/document"; let undoStack = [];let redoStack = []; function sendDataToServer(data) {    fetch(url, {        method: 'POST',        headers: {            'Content-Type': 'application/json',        },        body: JSON.stringify({ content: data })    })    .then(response => response.json())    .then(data => console.log('Success:', data))    .catch((error) => console.error('Error:', error));} function formatText(command) {    document.execCommand(command, false, null);} function changeColor() {    const color = prompt("Enter text color code:");    document.execCommand("foreColor", false, color);} function changeFont() {    const font = prompt("Enter font:");    document.execCommand("fontName", false, font);} function changeFontSize() {    const size = prompt("Enter font size:");    document.execCommand("fontSize", false, size);} function clearText() {    document.getElementById("editor").innerHTML = "";} function toUpperCase() {    const selectedText = window.getSelection().toString();    document.execCommand("insertText", false, selectedText.toUpperCase());} function toLowerCase() {    const selectedText = window.getSelection().toString();    document.execCommand("insertText", false, selectedText.toLowerCase());} function highlightText() {    const color = prompt("Enter highlight color code:");    document.execCommand("hiliteColor", false, color);} function createTable() {    const rows = prompt("Enter the number of rows:");    const cols = prompt("Enter the number of columns:");    let tableHTML = "<table border='1'>";    for (let i = 0; i < rows; i++) {        tableHTML += "<tr>";        for (let j = 0; j < cols; j++) {            tableHTML += "<td>Cell</td>";        }        tableHTML += "</tr>";    }    tableHTML += "</table>";    document.execCommand("insertHTML", false, tableHTML);} function increaseImageSize() {    const selectedImage = document.querySelector('img.resizable');    if (selectedImage) {        const currentWidth = selectedImage.width;        selectedImage.style.width = (currentWidth * 1.2) + 'px';    }} function decreaseImageSize() {    const selectedImage = document.querySelector('img.resizable');    if (selectedImage) {        const currentWidth = selectedImage.width;        selectedImage.style.width = (currentWidth * 0.8) + 'px';    }} function insertImage() {    const imageUrl = prompt("Enter the image URL:");    if (imageUrl) {        const imgHTML = "<img src='" + imageUrl + "' alt='User Image' class='resizable'>";        document.execCommand("insertHTML", false, imgHTML);    }} function undo() {    if (undoStack.length > 0) {        redoStack.push(document.getElementById("editor").innerHTML);        document.getElementById("editor").innerHTML = undoStack.pop();    }} function redo() {    if (redoStack.length > 0) {        undoStack.push(document.getElementById("editor").innerHTML);        document.getElementById("editor").innerHTML = redoStack.pop();    }} function autoSave() {    const currentContent = document.getElementById("editor").innerHTML;    undoStack.push(currentContent);    if (undoStack.length > 10) {        undoStack.shift();    }    // Implement autosave functionality here (e.g., send currentContent to server for saving)} function updateTextInfo() {    const editorContent = document.getElementById("editor").innerText;    const wordCount = editorContent.trim().split(/\s+/).filter(word => word.length > 0).length;    const characterCount = editorContent.replace(/[\n\s]+/g, '').length;    const sentenceCount = editorContent.split(/[.!?]+/).filter(sentence => sentence.length > 0).length;    const paragraphCount = editorContent.split('\n\n').filter(para => para.trim() !== '').length;     document.getElementById("wordCount").innerText = "Word Count: " + wordCount;    document.getElementById("charCount").innerText = "Character Count: " + characterCount;    document.getElementById("sentenceCount").innerText = "Sentence Count: " + sentenceCount;    document.getElementById("paraCount").innerText = "Paragraph Count: " + paragraphCount;});

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Please help me with this

Please fix the full code: this code is supposed to work in a web browser (Client_side.js)

const url = "http://localhost:3000/document";

let undoStack = [];
let redoStack = [];

function sendDataToServer(data) {
    fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({ content: data })
    })
    .then(response => response.json())
    .then(data => console.log('Success:', data))
    .catch((error) => console.error('Error:', error));
}

function formatText(command) {
    document.execCommand(command, false, null);
}

function changeColor() {
    const color = prompt("Enter text color code:");
    document.execCommand("foreColor", false, color);
}

function changeFont() {
    const font = prompt("Enter font:");
    document.execCommand("fontName", false, font);
}

function changeFontSize() {
    const size = prompt("Enter font size:");
    document.execCommand("fontSize", false, size);
}

function clearText() {
    document.getElementById("editor").innerHTML = "";
}

function toUpperCase() {
    const selectedText = window.getSelection().toString();
    document.execCommand("insertText", false, selectedText.toUpperCase());
}

function toLowerCase() {
    const selectedText = window.getSelection().toString();
    document.execCommand("insertText", false, selectedText.toLowerCase());
}

function highlightText() {
    const color = prompt("Enter highlight color code:");
    document.execCommand("hiliteColor", false, color);
}

function createTable() {
    const rows = prompt("Enter the number of rows:");
    const cols = prompt("Enter the number of columns:");
    let tableHTML = "<table border='1'>";
    for (let i = 0; i < rows; i++) {
        tableHTML += "<tr>";
        for (let j = 0; j < cols; j++) {
            tableHTML += "<td>Cell</td>";
        }
        tableHTML += "</tr>";
    }
    tableHTML += "</table>";
    document.execCommand("insertHTML", false, tableHTML);
}

function increaseImageSize() {
    const selectedImage = document.querySelector('img.resizable');
    if (selectedImage) {
        const currentWidth = selectedImage.width;
        selectedImage.style.width = (currentWidth * 1.2) + 'px';
    }
}

function decreaseImageSize() {
    const selectedImage = document.querySelector('img.resizable');
    if (selectedImage) {
        const currentWidth = selectedImage.width;
        selectedImage.style.width = (currentWidth * 0.8) + 'px';
    }
}

function insertImage() {
    const imageUrl = prompt("Enter the image URL:");
    if (imageUrl) {
        const imgHTML = "<img src='" + imageUrl + "' alt='User Image' class='resizable'>";
        document.execCommand("insertHTML", false, imgHTML);
    }
}

function undo() {
    if (undoStack.length > 0) {
        redoStack.push(document.getElementById("editor").innerHTML);
        document.getElementById("editor").innerHTML = undoStack.pop();
    }
}

function redo() {
    if (redoStack.length > 0) {
        undoStack.push(document.getElementById("editor").innerHTML);
        document.getElementById("editor").innerHTML = redoStack.pop();
    }
}

function autoSave() {
    const currentContent = document.getElementById("editor").innerHTML;
    undoStack.push(currentContent);
    if (undoStack.length > 10) {
        undoStack.shift();
    }
    // Implement autosave functionality here (e.g., send currentContent to server for saving)
}

function updateTextInfo() {
    const editorContent = document.getElementById("editor").innerText;
    const wordCount = editorContent.trim().split(/\s+/).filter(word => word.length > 0).length;
    const characterCount = editorContent.replace(/[\n\s]+/g, '').length;
    const sentenceCount = editorContent.split(/[.!?]+/).filter(sentence => sentence.length > 0).length;
    const paragraphCount = editorContent.split('\n\n').filter(para => para.trim() !== '').length;

    document.getElementById("wordCount").innerText = "Word Count: " + wordCount;
    document.getElementById("charCount").innerText = "Character Count: " + characterCount;
    document.getElementById("sentenceCount").innerText = "Sentence Count: " + sentenceCount;
    document.getElementById("paraCount").innerText = "Paragraph Count: " + paragraphCount;
});

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Form and its Elements
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education