• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

prompt von poup in formulartextfeld

  • Ersteller Ersteller matibaski
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
M

matibaski

Guest
Moin!
Ich möchte ein Codetagpopup machen, was ich schon fertig habe.
Nun möchte ich, wenn jemand URL erstellen klickt, dass ein prompt-Fenster geöffnet, wo der User die URL eingeben soll, und wenn er es bestätigt, schliesst sich das Popup und trägt [noparse]webhosting24 - Login[/noparse] in das Textfeld.

Also das Fenster wird einfach aufferufen:
PHP:
function codetags() {
codetags = window.open('_private/codetags.php', "Codetags", 'toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,width=400,height=500');
codetags.focus();
}


Momentan sieht das bei mir so aus:
PHP:
function url() {
var urlinsert = promt("Bitte geben Sie die URL ein (mit http://)", "");
document.editor.beitrag.write.urlinsert;
document.editor.beitrag.focus();
window.close.urlinsert;
}
Da ich sowas zum ersten Mal mache, funktioniert das nicht, so wie ich es will.
Wie muss das aussehen?


MfG, matibaski
 
Hier mal so wie ich das löse!
Es ist bei mir aufgeteilt in 2 Funktionen damit beliebig Viele weitere Funktionen hinzufügen kann à la [noparse][/noparse] etc

Funktion 1
Code:
[noparse]function insertAtCursor(myField, myValue)
    {
        //IE support
        if (document.selection)
        {
            myField.focus();
            sel = document.selection.createRange();
            sel.text = myValue;
        }
        //MOZILLA/NETSCAPE support
        else if (myField.selectionStart || myField.selectionStart == '0')
        {
            var startPos = myField.selectionStart;
            var endPos = myField.selectionEnd;
            myField.value = myField.value.substring(0, startPos)
            + myValue
            + myField.value.substring(endPos, myField.value.length);
        }
        else
        {
            myField.value += myValue;
        }
    }[/noparse]
Funktion 2
Code:
[noparse]function inserturl ()
    {
    document.getElementById('textarea').focus();
    var txt = document.getElementById('textarea');
    var obja = prompt('Bitte geben sie die Hyperlinkadresse ein','http://');
    var objb = prompt('Bitte geben sie einen Namen für den Link ein\nfalls leer ist der name gleich der Adresse','');
    if(objb == null || objb == "")
        var obj = "[URL]"+obja+"[/URL]";
    else
        var obj = "[URL="+obja+"]"+objb+"[/URL]";
    insertAtCursor(txt, obj)
    }[/noparse]

aufrufen mit
Code:
[noparse]<a href="javascript:inserturl()">URL</a>[/noparse]
Die Textarea muss die id textarea ( id="textarea" ) haben
 
Komisch...
Danke für den Code, doch wenn ich im Popup dann auf URL klicke, kommt keine Eingabeaufforderung.
Ich weiss nich wieso.
Also so siehts aus:
PHP:
<html>
<head>
<script type="text/javascript">
function insertAtCursor(myField, myValue)
{
 //IE support
 if (document.selection)
 {
  myField.focus();
  sel = document.selection.createRange();
  sel.text = myValue;
 }
 //MOZILLA/NETSCAPE support
 else if (myField.selectionStart || myField.selectionStart == '0')
 {
  var startPos = myField.selectionStart;
  var endPos = myField.selectionEnd;
  myField.value = myField.value.substring(0, startPos)
  + myValue
  + myField.value.substring(endPos, myField.value.length);
 }
 else
 {
  myField.value += myValue;
 }
}

function inserturl ()
{
 document.getElementById('textarea').focus();
 var txt = document.getElementById('textarea');
 var obja = prompt('Bitte geben sie die Hyperlinkadresse ein','http://');
 var objb = prompt('Bitte geben sie einen Namen für den Link ein\nfalls leer ist der name gleich der Adresse','');
 if(objb == null || objb == "")
  var obj = "[url]"+obja+"[/url]";
 else
  var obj = "[url="+obja+"]"+objb+"[/url]";
 insertAtCursor(txt, obj)
}
</script>
</head>

<body>
<h1>Codetags</h1>
<table style="border:0px;">
 <tr>
  <th>Codetag</th>
  <th>Funktion</th>
 </tr>
 <tr>
  <td><a href="javascript:inserturl()">URL</a></td>
  <td>[url=http://testlink.com]Telinc - WIDE AREA NETWORK Access Products and Test Equipment, CSU/DSU CSU DSU DACS DCS DDS T1 E1 WAN CLEC ISP access network SNMP DDS_CSU/DSU BERT PCMCIA FDL Analysis Simulator Delay framing clocking Crossconnect Switch Mux[/url]</td>
 </tr>
</table>
</body>
</html>
Und wenn die die beiden Scripte noch in die Seite einbinde, dann funktionierts auch nicht.
Also in der Seite sehen die so aus:
PHP:
"<script type=\"text/javascript\">
<!--
function insert(tag) {
document.editor.textarea.value += tag+\"\";
document.editor.textarea.focus();
}

function codetags() {
codetags = window.open('_private/codetags.php', \"Codetags\", 'toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,width=400,height=500');
codetags.focus();
}

function insertAtCursor(myField, myValue)
{
 //IE support
 if (document.selection)
 {
  myField.focus();
  sel = document.selection.createRange();
  sel.text = myValue;
 }
 //MOZILLA/NETSCAPE support
 else if (myField.selectionStart || myField.selectionStart == '0')
 {
  var startPos = myField.selectionStart;
  var endPos = myField.selectionEnd;
  myField.value = myField.value.substring(0, startPos)
  + myValue
  + myField.value.substring(endPos, myField.value.length);
 }
 else
 {
  myField.value += myValue;
 }
}

function absenden(formular) {
  document.getElementById(formular).submit()
}
-->
</script>\n";
Das ganze ist escaped, weil das im PHP Code vorkommt.


MfG, matibaski
 
der js teil, die textarea und der link müssen im selben dokument sein, ansonsten musst du es halt umschreiben
 
Nun habe ich halt vor, ein verstecktes Div zu setzen, und bei klick wird es sichtbar.
Also so:
PHP:
function codetagsopen() {
document.getElementByID('codetags').style.visibility='visible';
}
So die HTML:
PHP:
<a href="javascript:codetagsopen()">Öffnen</a>
<div id="codetags" style="width:100px; height:50px; border:0px; visibility:hidden;">Blabla</div>
Doch das ganze will nich funktionieren. Wieso weiss ich nicht.


MfG, matibaski

edit:
Hab deine Codes mal auf der Seite (also nicht im Popup) ausprobiert.
Doch es will nicht funktionieren.
Was isch falsch?
Code:
<textarea style="float:left;" name="Text" id="textarea" rows="6" cols="45"></textarea>
Habe deine zwei Codes verwendet dazu.
Passiert nix, wenn ich auf:
Code:
<a href="javascript:inserturl()">URL</a>
klicke.
Wieso das? Die ID ist ja textarea.
 
Zuletzt bearbeitet von einem Moderator:
ein Tipp es heißt getElementById nicht getElementByID ;)

Außerdem würd ich es mit display machen nicht mit , so nimmt das unsichtbare keinen Platz weg.

Mfg

web_spider :D
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben