Die Idee des Skripts unten ist die "Vorschau" des Inhalts aus einem Textbereich. Wie es funktioniert?
$("#preview_post")
ist ein Anker, der den Vorschaumodus auslöst.- Der Textbereich wird als gelesen
var content = $("#post_content").val();
- Das Formular, in dem sich der Textbereich befindet, wird ausgeblendet, um das div (#content_previewed) anzuzeigen, in dem das Markup angezeigt wird.
Dies ist der JS-Code:
var pl_previwing = false;
$(document).ready(function(){
$("#preview_post").plPreviewPost();
});
jQuery.fn.plPreviewPost = function(options) {
this.on("click", function(){
var content = $("#post_content").val();
$("#replay_container form").toggle(function(){
pl_previwing = !pl_previwing;
});
console.log("previewing: " + pl_previwing);
//plCallParser();
});
};
function plCallParser(){
if (pl_previwing){
console.log("do a post here to process the markup");
}
}
Was ist das Problem hier? Wenn Sie bemerken, dass ich eine kommentierte Zeile habe:
console.log("previewing: " + pl_previwing);
//plCallParser();
Wenn ich die obige Zeile auskommentiere, hängt sich der Firebug abrupt auf und der Browser friert mit der folgenden Meldung ein:
Übersetzung:
Ein Skript auf dieser Seite ist möglicherweise ausgelastet oder reagiert nicht mehr. Sie können das Skript anhalten oder auf eine Antwort warten.
BEARBEITEN
- Aktueller Browser: 16.0.2, aber es passiert in allen Browsern
- Der Inhalt des Textfeldes ist nicht wichtig, da es nur "Testkörper" hat
Antworten:
2 für die Antwort № 1Beim:
function plCallParser() {
if (pl_previwing) {
console.log("do a post here to process the markup");
});
Sie müssen ein "};};" dort, wie so:
function plCallParser() {
if (pl_previwing) {
console.log("do a post here to process the markup");
};
};
Nur ein einfacher Fehler. Ich hasse es, wenn ich Klammern durcheinander bringe.