Simple-HTML-Editor / index.html
Taf2023's picture
Update index.html
b31a34b verified
raw
history blame
5.46 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Simple HTML Editor</title>
<style>
.toolbar {
margin-bottom: 10px;
}
.toolbar button {
padding: 5px;
margin-right: 5px;
}
.menu {
display: none;
position: absolute;
background-color: #f9f9f9;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.toolbar .menu button {
display: block;
width: 100%;
padding: 10px;
text-align: left;
border: none;
background-color: inherit;
}
.toolbar .menu button:hover {
background-color: #f1f1f1;
}
.toolbar .dropdown:hover .menu {
display: block;
}
.editor {
border: 1px solid #ccc;
min-height: 200px;
padding: 10px;
}
.preview {
border: 1px solid #ccc;
min-height: 200px;
padding: 10px;
margin-top: 10px;
}
</style>
</head>
<body>
<div class="toolbar">
<div class="dropdown">
<button class="dropbtn" onclick="toggleMenu()">Insert</button>
<div class="menu" id="myDropdown">
<button onclick="insertLink()">Link</button>
<button onclick="insertImage()">Image</button>
<button onclick="insertVideo()">Video</button>
<button onclick="insertParagraph()">Paragraph</button>
<button onclick="insertHeader()">Header</button>
<button onclick="downloadHTML()">Download HTML</button>
<button onclick="autoCompose()">Auto Compose</button>
</div>
</div>
<button onclick="previewHTML()">Preview</button>
</div>
<div class="editor" contenteditable="true"></div>
<div class="preview"></div>
<script>
function toggleMenu() {
var menu = document.getElementById("myDropdown");
if (menu.style.display === "none") {
menu.style.display = "block";
} else {
menu.style.display = "none";
}
}
function insertLink() {
var url = prompt("Enter the URL of the link:");
var text = prompt("Enter the link text:");
if (url && text) {
var link = '<a href="' + url + '">' + text + '</a>';
document.querySelector('.editor').innerHTML += link;
}
}
function insertImage() {
var url = prompt("Enter the URL of the image:");
if (url) {
var image = '<img src="' + url + '" alt="Image">';
document.querySelector('.editor').innerHTML += image;
}
}
function insertVideo() {
var url = prompt("Enter the YouTube video URL:");
if (url) {
var video = '<iframe width="560" height="315" src="' + url + '" frameborder="0" allowfullscreen></iframe>';
document.querySelector('.editor').innerHTML += video;
}
}
function insertParagraph() {
var text = prompt("Enter the paragraph content:");
if (text) {
var paragraph = '<p>' + text + '</p>';
document.querySelector('.editor').innerHTML += paragraph;
}
}
function insertHeader() {
var level = prompt("Enter the header level (1-6):");
var text = prompt("Enter the header content:");
if (level && text) {
var header = '<h' + level + '>' + text + '</h' + level + '>';
document.querySelector('.editor').innerHTML += header;
}
}
function previewHTML() {
var editorContent = document.querySelector('.editor').innerHTML;
document.querySelector('.preview').innerHTML = editorContent;
}
function downloadHTML() {
var editorContent = document.querySelector('.editor').innerHTML;
var filename = "edited.html";
var element = document.createElement('a');
element.setAttribute('href', 'data:text/html;charset=utf-8,' + encodeURIComponent(editorContent));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
function autoCompose() {
var text = prompt("Please enter the text:");
if (text) {
var alignment = "";
if (text.endsWith(".")) {
alignment = "left";
} else if (text.endsWith("?")) {
alignment = "right";
} else if (text.endsWith("!")) {
alignment = "center";
}
var element = document.createElement("p");
element.style.textAlign = alignment;
element.textContent = text;
document.querySelector(".editor").appendChild(element);
}
}
</script>
</body>
</html>