dentopolis
3.06.2017, 19:40:34
mam textarea z tinymce.działa.
drugi skrypt stąd:
js bin działa.
ale przestaje działać gdy połączę obydwa czyli gdy <textarea id='textbox'></textarea>
jak mogę to poprawić?
Niree
3.06.2017, 20:49:22
Kliknij sobie prawym na tinyemce i pobierz identyfikator pola, w którym znajduje się tekst. Edytory działają tak, że tworzą nam zamiast textarea jakieś divy i inne cuda. Dlatego jak określiłeś identyfikator "textarea", to nie ma znaczenia, bo tekst musi być wstrzyknięty do kontenera edytora.
dentopolis
3.06.2017, 20:54:29
tinymce nadaje polu textarea id="tinymce", jednak gdy zmieniłem w kodzie na takie id to nadal nie działa:
<textarea id='tinymce'></textarea>
<script>
var tinymce = document.getElementById('tinymce');
var procedury = document.getElementById('procedury');
// add one event handler to the table
procedury.onclick = function (e) {
// normalize event
e = e || window.event;
// find out which element was clicked
var el = e.target || e.srcElement;
// check if it's a procedury cell
if (el.nodeName.toUpperCase() == "TD") {
// append it's content to the tinymce
tinymce.value += (el.textContent || el.innerText);
}
}
</script>
Niree
3.06.2017, 21:41:09
Ty w ogóle nie ogarniasz co się do Ciebie pisze. Kliknij prawym na tinymce i zobacz w kod HTML, tam nie ma tylko textarea. Skrypt tinymce dodał własne iframki i divy.
To czego szukasz to klasa "mce-content-body"
Użyj jquery do wstrzyknięcia tekstu:
var tinymce = $( ".mce-content-body" );
var procedury = document.getElementById('procedury');
// add one event handler to the table
procedury.onclick = function (e) {
// normalize event
e = e || window.event;
// find out which element was clicked
var el = e.target || e.srcElement;
// check if it's a procedury cell
if (el.nodeName.toUpperCase() == "TD") {
// append it's content to the tinymce
//tinymce.value += (el.textContent || el.innerText);
tinymce.append(el.textContent);
}
}
dentopolis
3.06.2017, 21:55:35
sorry za brak zrozumienia, staram się na ile mogę, ale programowanie to nie moja dziedzina. jaką funkcją mam "wstrzyknąć" ten tekst do pola?
trueblue
3.06.2017, 22:05:22
tinyMCE.activeEditor.execCommand('mceInsertContent', false, "tekst do wstawienia w pozycji kursora");
dentopolis
18.06.2017, 21:26:09
super.działa.dzięki.
<script>
var tinymce = $( ".mce-content-body" );
var procedury = document.getElementById('procedury');
// add one event handler to the table
procedury.onclick = function (e) {
// normalize event
e = e || window.event;
// find out which element was clicked
var el = e.target || e.srcElement;
// check if it's a procedury cell
if (el.nodeName.toUpperCase() == "TD") {
// append it's content to the tinymce
//tinymce.value += (el.textContent || el.innerText);
// tinymce.append(el.textContent);
tinyMCE.activeEditor.execCommand('mceInsertContent', false, (el.textContent));
}
}
</script>
ten kod powyżej działa jeśli chcę kliknąć tekst w komórce tabeli, ale jak powinien wyglądać jeśli tekst jest np.w divie po prostu oddzielany przecinkami np. badanie, przegląd, konsultacja?
trueblue
18.06.2017, 21:30:39
Wstaw je do osobnych elementów, np. <span>, albo do <li> (wtedy nie <div> a <ul>). Przecinki ustaw za pomocą pseudoselektora ::after.
dentopolis
18.06.2017, 21:35:57
a mogę prosić o pomoc w samym kodzie?
rozumiem że sam tekst ma wyglądać tak:<span class="leczenie">test1</span>, <span class="leczenie">test2</span>
trueblue
18.06.2017, 21:37:46
dentopolis
19.06.2017, 19:27:42
próbuję tak:
<div id="leczenie">
<span>Item A</span>
<span>Item B</span>
</div>
<script type="text/javascript">
// locate your element and add the Click Event Listener
document.getElementById("leczenie").addEventListener("click",function(e) {
// e.target is our targetted element.
// try doing console.log(e.target.nodeName), it will result LI
if(e.target && e.target.nodeName == "span") {
console.log(e.target.id + " was clicked");
}
});
</script>
jak dotąd nie działa, ale tak czy inaczej potrzebuję, żeby kliknięty tekst nie wyskakiwał w konsoli ale był dodany do mojego tinymce (kod powyżej)
trueblue
19.06.2017, 19:32:48
SPAN nie span.
dentopolis
19.06.2017, 20:11:36
<div id="leczenie">
<span>Item A</span>
<span>Item B</span>
</div>
<script type="text/javascript">
// locate your element and add the Click Event Listener
document.getElementById("leczenie").addEventListener("click",function(e) {
// e.target is our targetted element.
// try doing console.log(e.target.nodeName), it will result LI
if(e.target && e.target.nodeName == "SPAN") {
console.log(e.target.id + " was clicked");
}
});
</script>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.