Autor Zpráva
juraj
Profil
Zdravím

mám dve otázky
1. V mozile firefox, ak vložím dve tabuľky a kliknem napr. na druhú tabuľku,tak mriežka nenaskočí na vybratú tabuľku
a potom s kurzorom nemozem späť vyskočiť do divu
2. ak kliknem do riadku tak sa tiež tam nevloží smajlik z okna
pripajám link na ukážku,kde si môžete stiahnúť aj súbory insert.inzerciatop.sk
aj kód na index.php
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script type="text/javascript">
var oDoc, sDefTxt;
function initDoc() {
document.designMode = 'on';
   document.body.contentEditable = 'true';
  oDoc = document.getElementById("textBox");
  sDefTxt = oDoc.innerHTML;
 if (document.compForm.switchMode.checked) { setDocMode(true); }
  if (document.getElementById("form").switchMode.checked){ setDocMode(true); }
}
window.onload = function () {
  oDoc = document.getElementById("textBox");
  sDefTxt = oDoc.innerHTML;
 // if (document.compForm.switchMode.checked) { setDocMode(true); }
    if (document.getElementById("form").switchMode.checked) { setDocMode(true); }
     document.getElementById("form").onsubmit = function onSubmit(form) {
   if(validateMode()){this.myDoc.value=oDoc.innerHTML;return true;}return false;
  
    }
  }
function formatDoc(sCmd, sValue) {
  if (validateMode()) { document.execCommand(sCmd, false, sValue); oDoc.focus(); }
}
function validateMode() {
  if (!document.getElementById("form").switchMode.checked) { return true ; }
  alert("Uncheck \"Ukaz HTML\".");
  oDoc.focus();
  return false;
}
function setDocMode(bToSource) {
  var oContent;
  if (bToSource) {
    oContent = document.createTextNode(oDoc.innerHTML);
    oDoc.innerHTML = "";
    var oPre = document.createElement("pre");
    oDoc.contentEditable = false;
    oPre.id = "sourceText";
    oPre.contentEditable = true;
    oPre.appendChild(oContent);
    oDoc.appendChild(oPre);
  } else {
    if (document.all) {
      oDoc.innerHTML = oDoc.innerText;
    } else {
      oContent = document.createRange();
      oContent.selectNodeContents(oDoc.firstChild);
      oDoc.innerHTML = oContent.toString();
    }
    oDoc.contentEditable = true;
  }
  oDoc.focus();
}
function tabulkyn() {

// var range =getFirstRange();
    var myTableDiv = document.getElementById("textBox");
  var table = document.createElement('TABLE');
      table.border = '1';
     table.style='position:relative;margin-bottom:40px;padding: 5px;'; 
    var tableBody = document.createElement('TBODY');
    table.appendChild(tableBody);
    table.setAttribute("onclick", "yourFun(this)");
    for (var i = 0; i < 3 ; i++) {
        var tr = document.createElement('TR');
        tableBody.appendChild(tr);
        for (var j = 0; j < 5; j++) {
            var td = document.createElement('TD');
            td.width = '50';
            td.height = '50';
            td.style.backgroundColor = "red";
           //************************************************
            td.setAttribute("onclick", "yourFun(this)");
            td.setAttribute("onclick", "yourFun(this)");
           tr.appendChild(td);
        }
    }
    myTableDiv.appendChild(table);
};
function setFunction() {
    var myTableDiv = document.getElementById("textBox");
    var tds = myTableDiv.getElementsByTagName("td");
    for (var i = 0; i < tds.length; i++) {
        tds[i].setAttribute("onclick", "yourFun(this)");
    }
}
function yourFun(tdObj) {
    tdObj.style.backgroundColor = "green";
}
</script>
    <body >
  <form id="form" name="inputj"  method="post">
    <input type="hidden" name="myDoc">
<div id="toolBar1">

<button type="button" onclick="tabulkyn()">Vlozit tabulku</button>
<a href="#" title="i"  onClick='targetitems = document.getElementById("textBox"); 
    dataitems = window.open("smajlik.php",
   "dataitems", "width=800,height=400,toolbar=no,menubar=no,scrollbars=yes"); 
   dataitem1.targetitem1 = targetitem1'  border="0" height="20" width="20">smajlik</a>
        </div>        <div onclick="showCoords(event)"  contenteditable="true" class="textBox1" id="textBox"  >

        </div>
        <span id="editMode"><input type="checkbox" name="switchMode" id="switchBox" onchange="setDocMode(this.checked);" /> <label for="switchBox">Zobraz HTML</label></span>
<br><p><input type="submit" value="Send" /></p>
</form>
a kód v súbore smajlik.php
<script>

function special_bbcode(t) {
if (opener && !opener.closed){
    opener.document.getElementById('textBox').innerHTML =     opener.document.getElementById('textBox').innerHTML+t;
        window.close();
}}

</script>

<a href="#" onclick="special_bbcode('<img src=smiley.png >');return false;"><img src="smiley.png" > </a>
Chamurappi
Profil
Reaguji na juraje:
table.setAttribute("onclick", "yourFun(this)");
Tomuhle bych se vyhnul.

table.style='position:relative;margin-bottom:40px;padding: 5px;';
Tomu také. Když už, tak table.style.cssText. Lepší by bylo měnit třídu (vlastnost className).

ak kliknem do riadku tak sa tiež tam nevloží smajlik z okna
Vkládáš ho očividně na konec, přidáním do innerHTML. Jde ho vložit i přes nějaké ty WYSIWYG funkce přímo na pozici kurzoru, na přesný kód si nevzpomínám, tuším, že je tam i nějaká meziprohlížečová nuance.
Mimochodem, proč používáš na smajlíky nové okno? Není to trochu nešikovné? Minimálně na dotykových zařízeních s tím budou problémy, na tvém místě bych zobrazil blok s výběrem smajlíků někde ve stránce…

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: