JAVAScript an Position übergeben ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JAVAScript an Position übergeben ...

    CODE:
    Code:
      var input = document.forms['editor'].elements['site'];
      input.focus();
      /* für Internet Explorer */
      if(typeof document.selection != 'undefined') {
    
        /* Einfügen des Formatierungscodes */
        var range = document.selection.createRange();
        var insText = range.text;
        range.text = aTag + insText + eTag;
        /* Anpassen der Cursorposition */
        range = document.selection.createRange();
        if (insText.length == 0) {
          range.move('character', -eTag.length);
        } else {
    	 range.moveStart('character',
     aTag.length + insText.length + eTag.length);      
        }
        range.select();
    	input.value = input.value.substr(0, pos)
     + aTag + insText + eTag + input.value.substr(pos);
      }
    Das Prob dabei ist, dass das Script mir 3mal das einfügt! wenn ich text selektiere sogar den text 2 mal! Wieso?

    aufrufen tu ich es mit:

    Code:
    Bsp.: onClick="insert('[b]', '[/b]')"
    Signatur-Text ...

  • #2
    öhm löl ...
    natürlich rufe ich es nich so sondern mit

    Bsp.: onClick="insert('[ b]', '[ /b]')" auf
    Signatur-Text ...

    Kommentar


    • #3
      Keiner ne idee?
      Hier ma das komplette Script. Funzt im Firefox einwandfrei!
      PHP-Code:
       function insert(aTageTag) {

      if(
      aTag == '[mail='){
          var 
      mail prompt("E-mailadresse:","");
          
      aTag aTag mail "]";
      }
      if(
      aTag == '[url='){
          var 
      mail prompt("Url-Adresse:","");
          
      aTag aTag mail "]";
      }

        var 
      input document.forms['editor'].elements['site'];
        
      input.focus();
        
      /* für Internet Explorer */
        
      if(typeof document.selection != 'undefined') {

          
      /* Einfügen des Formatierungscodes */
          
      var range document.selection.createRange();
          var 
      insText range.text;
          
      range.text aTag insText eTag;
          
      /* Anpassen der Cursorposition */
          
      range document.selection.createRange();
          if (
      insText.length == 0) {
            
      range.move('character', -eTag.length);
          } else {
           
      range.moveStart('character'
      aTag.length insText.length eTag.length);      
          }
          
      range.select();
          
      input.value input.value.substr(0pos)
       + 
      aTag insText eTag input.value.substr(pos);
        }
        
      /* für neuere auf Gecko basierende Browser */
        
      else if(typeof input.selectionStart != 'undefined')
        {
          
      /* Einfügen des Formatierungscodes */
          
      var start input.selectionStart;
          var 
      end input.selectionEnd;
          var 
      insText input.value.substring(startend);
          
      input.value input.value.substr(0start
      aTag insText eTag input.value.substr(end);
          
      /* Anpassen der Cursorposition */
          
      var pos;
          if (
      insText.length == 0) {
            
      pos start aTag.length;
          } else {
            
      pos start aTag.length insText.length eTag.length;
          }
          
      input.selectionStart pos;
          
      input.selectionEnd pos;
        }
        
      /* für die übrigen Browser */
        
      else
        {
          
      /* Abfrage der Einfügeposition */
          
      var pos;
          var 
      re = new RegExp('^[0-9]{0,3}$');
          while(!
      re.test(pos)) {
            
      pos prompt("Einfügen an Position (0.." input.value.length "):""0");
          }
          if(
      pos input.value.length) {
            
      pos input.value.length;
          }
          
      /* Einfügen des Formatierungscodes */
          
      var insText prompt("Bitte geben Sie den zu formatierenden Text ein:");
          
      input.value input.value.substr(0pos
      aTag insText eTag input.value.substr(pos);
        } 
      Signatur-Text ...

      Kommentar


      • #4
        Da ma wieder keiner helfen will (oder kann?)
        hier die Lösung für die dies benötigen:

        Code:
        function insert(aTag, eTag) {
        
        if(aTag == '[mail='){
        	var mail = prompt("E-mailadresse:","");
        	aTag = aTag + mail + "]";
        }
        if(aTag == '[url='){
        	var mail = prompt("Url-Adresse:","");
        	aTag = aTag + mail + "]";
        }
        
          var input = document.forms['editor'].elements['site'];
          input.focus();
          /* für Internet Explorer */
          if(typeof document.selection != 'undefined') {
        
            /* Einfügen des Formatierungscodes */
            var range = document.selection.createRange();
            var insText = range.text;
            range.text = aTag + insText + eTag;
            /* Anpassen der Cursorposition */
            range = document.selection.createRange();
            if (insText.length == 0) {
              range.move('character', -eTag.length);
            } else {
        	 range.moveStart('character', 
        aTag.length + insText.length + eTag.length);      
            }
            range.select();
        	// input.value = input.value.substr(0, pos) 
        + aTag + insText + eTag ;
          }
          /* für neuere auf Gecko basierende Browser */
          else if(typeof input.selectionStart != 'undefined')
          {
            /* Einfügen des Formatierungscodes */
            var start = input.selectionStart;
            var end = input.selectionEnd;
            var insText = input.value.substring(start, end);
            input.value = input.value.substr(0, start) 
        + aTag + insText + eTag + input.value.substr(end);
            /* Anpassen der Cursorposition */
            var pos;
            if (insText.length == 0) {
              pos = start + aTag.length;
            } else {
              pos = start + aTag.length + insText.length + eTag.length;
            }
            input.selectionStart = pos;
            input.selectionEnd = pos;
          }
          /* für die übrigen Browser */
          else
          {
            /* Abfrage der Einfügeposition */
            var pos;
            var re = new RegExp('^[0-9]{0,3}$');
            while(!re.test(pos)) {
              pos = prompt("Einfügen an Position (0.." + input.value.length + "):", 
        "0");
            }
            if(pos > input.value.length) {
              pos = input.value.length;
            }
            /* Einfügen des Formatierungscodes */
            var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
            input.value = input.value.substr(0, pos) 
        + aTag + insText + eTag + input.value.substr(pos);
          }
        }
        Signatur-Text ...

        Kommentar

        Lädt...
        X