Um HTML-Code auf einer Webseite darstellen zu können, muss dieser "escaped" werden.
Dieses Tool wandelt die zu escapene Zeichen um
Code
<link href="/css_webseite/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="/css_webseite/all.css" rel="stylesheet" media="screen">
<script src='/js_webseite/jquery.js' ></script>
<form>
<h1>HTML-Escape-Tool</h1>
<p>Um HTML-Code auf einer Webseite darstellen zu können, muss dieser "escaped" werden.
Hierbei werden die folgenden Elemente ersetzt:</p>
<pre>
" wird ersetzt durch &quot;
& ird ersetzt durch &amp;
< ird ersetzt durch &lt;
> ird ersetzt durch &gt;</pre>
<p>Dadurch wird der Code als Code dargestellt und nicht mehr vom Browser interpretiert.</p>
<hr />
<div class="panel panel-info">
<div class="panel-heading">
<h2 class="panel-title">Eingabe</h2>
</div>
<div class="panel-body">
<div class="form-group">
<label>Text / Beschriftung</label>
<textarea class="form-control" id="input" rows="5"></textarea>
</div>
<div class="form-group">
<input type="checkbox" name="pre" id="pre" /> PRE-Tag (vorformatierter Text) einfügen<br />
</div>
</div>
</div>
<hr />
<div class="panel panel-primary">
<div class="panel-heading">
<h2 class="panel-title">Code</h2>
</div>
<div class="panel-body">
<textarea class="form-control" id="outputHtml" rows="8"></textarea>
<br />
<button type="button" id="copyButton" class="btn btn-primary">Code kopieren</button>
<button type="button" id="refreshButton" class="btn btn-default">Aktualisieren</button>
<br />
<span id="msg"></span>
</div>
</div>
<hr />
<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">Anleitung / Beschreibung</h2>
</div>
<div class="panel-body">
<p>Den erstellten Text kopieren Sie und einfach an die gewünschte Stelle Ihrer Homepage einfügen.</p>
</div>
</div>
</form>
<script>
$(document).ready(function () {
$("#copyButton").click(function (event) {
copyToClipboardMsg(document.getElementById("outputHtml"), "msg");
});
$( "#refreshButton" ).click(function() {
generateHtml();
$("#msg").html("Code aktualisiert.");
setTimeout(function () {
$("#msg").html("");
}, 2000);
});
});
function copyToClipboardMsg(elem, msgElem) {
var succeed = copyToClipboard(elem);
var msg;
if (!succeed) {
msg = "Kopieren wird nicht unterstützt. Markieren Sie den Code und verwenden Sie STRG + C zum Kopieren.";
} else {
msg = "Der Code wurde in die Zwischenablage kopiert.";
}
if (typeof msgElem === "string") {
msgElem = document.getElementById(msgElem);
}
msgElem.innerHTML = msg;
setTimeout(function () {
msgElem.innerHTML = "";
}, 3000);
}
function copyToClipboard(elem) {
// create hidden text element, if it doesn't already exist
var targetId = "_hiddenCopyText_";
var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
var origSelectionStart, origSelectionEnd;
if (isInput) {
// can just use the original source element for the selection and copy
target = elem;
origSelectionStart = elem.selectionStart;
origSelectionEnd = elem.selectionEnd;
} else {
// must use a temporary form element for the selection and copy
target = document.getElementById(targetId);
if (!target) {
var target = document.createElement("textarea");
target.style.position = "absolute";
target.style.left = "-9999px";
target.style.top = "0";
target.id = targetId;
document.body.appendChild(target);
}
target.textContent = elem.textContent;
}
// select the content
var currentFocus = document.activeElement;
target.focus();
target.setSelectionRange(0, target.value.length);
// copy the selection
var succeed;
try {
succeed = document.execCommand("copy");
} catch (e) {
succeed = false;
}
// restore original focus
if (currentFocus && typeof currentFocus.focus === "function") {
currentFocus.focus();
}
if (isInput) {
// restore prior selection
elem.setSelectionRange(origSelectionStart, origSelectionEnd);
} else {
// clear temporary content
target.textContent = "";
}
return succeed;
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
</script>
<script>
$(document).ready(function ()
{
$("#input").on('input', function (event)
{
generateHtml();
});
$("#pre").change(function ()
{
generateHtml();
});
generateHtml();
});
function generateHtml(){
var input = $("#input").val();
var optionType = $("input[name='optionView']:checked").val();
var pre = $('#pre').prop('checked');
var html = "";
input = replaceAll(input, "&", "&");
input = replaceAll(input, "\"", """);
input = replaceAll(input, "<", "<");
input = replaceAll(input, ">", ">");
if (pre)
{
input = "<pre>" + input + "</pre>"
}
html += input + "\n";
$("#outputHtml").val(html);
}
</script>