Maffy: BB Code in Textarea einbinden

Ich habe ein Formular wo ich das Script zum einfügen von BB Code von Selfhtml einsetzen möchte.

Ich habe eine Grafik eingebaut mit einem link der dann bei klick ein weiteres Fenster öffnet (medien.php) wo alle Bilder als Link mit Vorschaubild angezeigt werden. Bei klick auf einen Link in der Medienübersicht soll im Formular (frm_reiseedit) im textarea (reisebeschreibung) das Bild als BB Code eingefügt werden.

Leider tut sich da nichts.

In der Medien.php (Medienübersicht) die sich als neues Fenster öffnet habe ich folgenden Link eingebaut.

  
  
$edit ="<a href=\"javascript:void(0)\" onClick=\"insert('{', '".$mediendatei.",2,".$mediendatei."}');\"  
title=\"".$mediendatei."\">".$mediendatei."</a>";  

In der Datei myeditor.php steht das Formular und das Javascript für das einfügen des BB Codes und öffnen des Fenster

[code lang=javascript]

<!--
function insertImage (medien) {
  MeinFenster = window.open(medien, "Medienverwaltung", "width=300,height=450,left=100,top=200");
  MeinFenster.focus();
}
//-->

<!--
function insert(aTag, eTag) {
  var input = document.forms['frm_reiseedit'].elements['reisebeschreibung'];
  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();
  }
  /* 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('[1]{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);
  }
}
//-->
[/CODE]


  1. 0-9 ↩︎

  1. Ich habe eine Grafik eingebaut mit einem link der dann bei klick ein weiteres Fenster öffnet (medien.php) wo alle Bilder als Link mit Vorschaubild angezeigt werden. Bei klick auf einen Link in der Medienübersicht soll im Formular (frm_reiseedit) im textarea (reisebeschreibung) das Bild als BB Code eingefügt werden.

    Leider tut sich da nichts.

    Hast du mal in die Fehlerkonsole geschaut?

    Struppi.

  2. Hallo

    Ich habe eine Grafik eingebaut mit einem link der dann bei klick ein weiteres Fenster öffnet (medien.php) wo alle Bilder als Link mit Vorschaubild angezeigt werden. Bei klick auf einen Link in der Medienübersicht soll im Formular (frm_reiseedit) im textarea (reisebeschreibung) das Bild als BB Code eingefügt werden.

    Redest du von einem zu öffnenden PopUp?

    In der Medien.php (Medienübersicht) die sich als neues Fenster öffnet habe ich folgenden Link eingebaut.

    $edit ="<a href="javascript:void(0)" onClick="insert('{', '".$mediendatei.",2,".$mediendatei."}');"
    title="".$mediendatei."">".$mediendatei."</a>";

      
    Wenn es um ein PopUp geht, muss der Aufruf auf das Browserfenster verweisen, von dem aus das PopUp geöffnet wurde (window.opener) und dort das Formularelement ansteuern. Ob das beispielsweise funktioniert, wenn anstatt dem neuen Fenster durch die (im übrigen durchaus gängige) Browsereinstellung ein weiteres Tab geöffnet wurde, weiß ich allerdings nicht.  
      
    Um das zu vermeiden, könntest du anstatt eines neuen Dokuments in einem neuen Fenster ebenfalls mit JavaScript eine neue HTML-Struktur (z.B. eine Liste) an geeigneter Stelle im bestehenden Fenster einfügen. Damit bliebe alles in einem Dokument.  
      
    Tschö, Auge  
    
    -- 
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.  
    Terry Pratchett, "Wachen! Wachen!"  
      
    [Veranstaltungsdatenbank Vdb 0.3](http://termindbase.auge8472.de/)