Kezdőoldal » Számítástechnika » Weblapkészítés » Jquery live preview-el kapcsol...

Kkerdezo kérdése:

Jquery live preview-el kapcsolatban teszem fel kérdésem. Valaki segítene?

Figyelt kérdés

A kód így néz ki jelenleg.


<script type="text/javascript" src=" [link]

<script type="text/javascript" src="../jquery.livepreview.js"></script>



<script type="text/javascript">

$(function() {

$('textarea.source').livePreview({

previewElement: $('div.preview'),

allowedTags: ['b' , 'i', 'center', 'u', 'li', 'br', 'color'],

interval: 20

});

});

</script>


Azt szeretném, hogy bbkód formában ([b], [i], [center], stb..) jelenítse meg a previewer, mert jelenleg csak a html tag-eket olvassa.

Előre is köszönöm a segítséget!



2013. ápr. 2. 14:46
1 2
 1/15 Mugen ***** válasza:
azt szeretnéd, hogy a bbkód formában lévőket is megjelenítse az elvárt szerint, vagy azt hogy a html tag-ek ne működjenek, csak a bbkód?
2013. ápr. 2. 17:59
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:

A BBkód működjön csak.


A textarea-ban bbkódok vannak megadva, és azt szeretném, hogy alatta folyamatosan lehessen látni, hogy hogyan is fog kinézni a tartalom formázva. (ahogy a menüpontban is meg fog jelenni)

2013. ápr. 2. 18:43
 3/15 Mugen ***** válasza:

szia!


Felelősséget nem vállalok érte!

Gyorsan kipróbáltam :) nekem megy. Ha nem megy neked,vagy hibásan működik akkor szólj.


A livepreview.js fájlt kell átírnod erre:


/*

* LivePreview jQuery Plugin v1.0

*

* Copyright (c) 2009 Phil Haack, [link]

* Licensed under the MIT license.

*/


(function($) {

$.fn.livePreview = function(options) {

var opts = $.extend({}, $.fn.livePreview.defaults, options);

var previewMaxIndex = opts.previewElement.length - 1;


var allowedTagsRegExp = new RegExp("\\[(/?(" + opts.allowedTags.join("|") + ")(\\s+.*?)?)\\]", "g");



return this.each(function(i) {

var textarea = $(this);

var preview = $(opts.previewElement[Math.min(i, previewMaxIndex)]);


textarea.handleKeyUp = function() {

textarea.unbind('keyup', textarea.handleKeyUp);

if (!preview.updatingPreview) {

preview.updatingPreview = true;

window.setTimeout(function() { textarea.reloadPreview() }, opts.interval);

}

return false;

};


textarea.htmlUnencode = function(s) {

return s.replace(/&/g, "&");

};

textarea.reloadPreview = function() {

var previewString = this.val();

if (previewString.length > 0) {

//

previewString = this.htmlUnencode(previewString);

previewString = previewString.replace(opts.paraRegExp, "<p>$1</p><p>$2</p>");

previewString = previewString.replace(opts.lineBreakRegExp, "$1<br />$2");

previewString = previewString.replace(allowedTagsRegExp, "<$1>");

}


try {

// Workaround for a bug in jquery 1.3.2 which is fixed in 1.4

preview[0].innerHTML = previewString;

}

catch (e) {

alert("Sorry, but inserting a block element within is not allowed here.");

}


preview.updatingPreview = false;

this.bind('keyup', this.handleKeyUp);

};


textarea.reloadPreview();

});


};


$.fn.livePreview.defaults = {

paraRegExp: new RegExp("(.*)\n\n([^#*\n\n].*)", "g"),

lineBreakRegExp: new RegExp("(.*)\n([^#*\n].*)", "g"),

allowedTags: ['a', 'b', 'strong', 'blockquote', 'p', 'i', 'em', 'u', 'strike', 'super', 'sub', 'code'],

interval: 80

};


})(jQuery);

2013. ápr. 2. 19:25
Hasznos számodra ez a válasz?
 4/15 Mugen ***** válasza:
írd meg hogy működik e neked! :)
2013. ápr. 2. 19:51
Hasznos számodra ez a válasz?
 5/15 A kérdező kommentje:

Isten vagy, működik!!!

Annyit esetleg még lehetne, hogy működjön a [size=5] és a color=red tag is? :)

2013. ápr. 3. 14:18
 6/15 Mugen ***** válasza:

Szia!


Elegendő, hogyha csak erre a kettő fajtára működik?

2013. ápr. 3. 21:13
Hasznos számodra ez a válasz?
 7/15 Mugen ***** válasza:
Próbáld meg. Nekem berakja a dolgokat :)
2013. ápr. 4. 00:19
Hasznos számodra ez a válasz?
 8/15 Mugen ***** válasza:

/*

* LivePreview jQuery Plugin v1.0

*

* Copyright (c) 2009 Phil Haack, [link]

* Licensed under the MIT license.

*/


(function($) {

$.fn.livePreview = function(options) {

var opts = $.extend({}, $.fn.livePreview.defaults, options);

var previewMaxIndex = opts.previewElement.length - 1;

opts.allowedTags = opts.allowedTags.concat(opts.allowedTagsWithEquals);

var allowedTagsRegExp = new RegExp("\\[(/?(((" + opts.allowedTagsWithEquals.join("|") + ")=[a-zA-Z0-9]+)|(" + opts.allowedTags.join("|") + "))(\\s+.*?)?)\\]", "g");



return this.each(function(i) {

var textarea = $(this);

var preview = $(opts.previewElement[Math.min(i, previewMaxIndex)]);


textarea.handleKeyUp = function() {

textarea.unbind('keyup', textarea.handleKeyUp);

if (!preview.updatingPreview) {

preview.updatingPreview = true;

window.setTimeout(function() { textarea.reloadPreview() }, opts.interval);

}

return false;

};


textarea.htmlUnencode = function(s) {

return s.replace(/&/g, "&");

};

textarea.reloadPreview = function() {

var previewString = this.val();

if (previewString.length > 0) {

//

previewString = this.htmlUnencode(previewString);

previewString = previewString.replace(opts.paraRegExp, "<p>$1</p><p>$2</p>");

previewString = previewString.replace(opts.lineBreakRegExp, "$1<br />$2");

previewString = previewString.replace(opts.colorRegExp, '<span style="color:$4">$6</span>');

previewString = previewString.replace(opts.sizeRegExp, '<span style="font-size:$4">$6</span>');

previewString = previewString.replace(allowedTagsRegExp, "<$1>");

}


try {

// Workaround for a bug in jquery 1.3.2 which is fixed in 1.4

preview[0].innerHTML = previewString;

}

catch (e) {

alert("Sorry, but inserting a block element within is not allowed here.");

}


preview.updatingPreview = false;

this.bind('keyup', this.handleKeyUp);

};


textarea.reloadPreview();

});


};



$.fn.livePreview.defaults = {

paraRegExp: new RegExp("(.*)\n\n([^#*\n\n].*)", "g"),

lineBreakRegExp: new RegExp("(.*)\n([^#*\n].*)", "g"),

colorRegExp: new RegExp("(\\[)(color)(=)([a-zA-Z0-9]+)(\\])(.*?)(\\[/color\\])", "g"),

sizeRegExp:new RegExp("(\\[)(size)(=)([0-9]+)(\\])(.*?)(\\[/size\\])", "g"),

allowedTags: ['a', 'b', 'strong', 'blockquote', 'p', 'i', 'em', 'u', 'strike', 'super', 'sub', 'code'],

interval: 80

};


})(jQuery);



Írd meg hogy megy e :P

2013. ápr. 4. 00:19
Hasznos számodra ez a válasz?
 9/15 A kérdező kommentje:
Sajnos nem megy se a size, sem a color. :/
2013. ápr. 4. 00:55
 10/15 Mugen ***** válasza:

milyen böngészőben futtatod? Nekem chrome-ban megy.


[size=14]béla[color=red]béla[/color][/size][br]

[color=green]sanyi[size=20]sanyi[/size][/color]


nekem erre a példára működik.

2013. ápr. 4. 01:40
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!