Avatar billede Slettet bruger
18. april 2003 - 20:31 Der er 7 kommentarer og
2 løsninger

Anden "indsæt link" funktion til MS editor?

Hej!

Jeg leder efter en lidt bedre "indsæt link" funktion end den der er standard når man bruger Microsofts DHTML editor (CreateLink), den som ofte bruges i CMS systemer.

Der må være nogen der har lavet det før, den skal bare åbne et popup vindue hvor man indtaster link, linknavn, linktype (http:// eller mailto:) og vælger om linket skal åbne i nyt vindue.

Min nuværende kan man nemlig ikke vælge at åbne links i nyt vindue i.
Avatar billede orca Nybegynder
18. april 2003 - 22:39 #1
Din nuværende funktion sender du formentligt en url som parameter. Prøv at lav den om til f.eks

http://www.mitwebsite.dk" target="_blank

Så vil den blive sat ind i linket således:
<a href="http://www.mitwebsite.dk" target="_blank">

Fordi din url bliver sat således ind:
<a href="dinurl">

/Mark
Avatar billede orca Nybegynder
18. april 2003 - 22:39 #2
Og du bliver selv nødt til at lave en dialogboks til det, ang valg om åbning i nyt vindue.
Avatar billede Slettet bruger
18. april 2003 - 22:41 #3
Min nuværende funktion er slet ikke tilgængelig, det er en der er indbygget i Explorer. Så det er desværre ikke så nemt.

Det jeg skal bruge er ret simpelt, det skal bare kunne sætte et link ind i et textarea.
Avatar billede orca Nybegynder
18. april 2003 - 22:45 #4
Et textarea er ikke MS's DHTML editor, det er en iframe. Hvis det skal indsættes i et textarea så bliver det jo bare som ren tekst.
Avatar billede Slettet bruger
18. april 2003 - 22:48 #5
Øh...jo, MS's editor kan godt være i et textarea :)
Avatar billede olebole Juniormester
19. april 2003 - 00:13 #6
<ole>

orca >> Der er vist lige noget, du skal sætte dig ind i  ;o)

el_barto >> Prøv søgefunktionen ... det har været oppe et hav af gange. Du kan enten skrive en helt ny funktion - eller sætte target på lige efter, du har oprettet linket. Noget à la:

  var aLinks = ELEMENT.getElementsByTagName("A");
  aLinks[aLinks.length-1].target = "_blank";

hvor 'ELEMENT' er en reference til dit contentEditable-element.

/mvh
</bole>
Avatar billede pelkjaer Nybegynder
19. april 2003 - 08:50 #7
Denne funktion sætter target på et link du allerede har oprettet.
idContent er reference til dit contentEditable-element.

function makeLinkBlank(hvad) {
  var oSel = idContent.document.selection.createRange()
  var sType = idContent.document.selection.type
  //if (sType!="Control"&&sType!="None")
  if(oSel.parentElement != null) {
    html = oSel.htmlText;
    html = html.substring(html.toLowerCase().indexOf("<a") + 3, html.length);
    sApplied = "<a target='"+hvad+"'"+html;
    oSel.pasteHTML(sApplied)
  }
}

så kan du evt. have dine targets gemt i en hiddenfelt som du "styrer" med en select

onclick="makeLinkBlank(document.formnavn.skjultfeltnavn.value)"
Avatar billede Slettet bruger
02. maj 2003 - 12:15 #8
Jeg fik strikket denne her sammen, jeg skylder nok at nævne at min editor er en videreudvikling af den gratis editor htmlarea, og den popup jeg har lavet kan nemt erstatte den indbyggede:

<html STYLE="width: 450px; height: 204px; ">
<head><title>Indsæt tabel</title><head>
<style>
html, body, button, table, div, input, select, fieldset {
font-family :Trebuchet MS, Verdana, Tahoma, Arial;
font-size :12px;
}
</style>
<script>

// if we pass the "window" object as a argument and then set opener to
// equal that we can refer to dialogWindows and popupWindows the same way
opener = window.dialogArguments;

var _editor_url = opener._editor_url;
var objname    = location.search.substring(1,location.search.length);
var config      = opener.document.all[objname].config;
var editor_obj  = opener.document.all["_" +objname+  "_editor"];
var editdoc    = editor_obj.contentWindow.document;

function _CloseOnEsc() {
  if (event.keyCode == 27) { window.close(); return; }
}

window.onerror = HandleError

function HandleError(message, url, line) {
  var str = "An error has occurred in this dialog." + "\n\n"
  + "Error: " + line + "\n" + message;
  alert(str);
//  window.close();
  return true;
}

function Init() {
  document.body.onkeypress = _CloseOnEsc;
}

function _isValidNumber(txtBox) {
  var val = parseInt(txtBox);
  if (isNaN(val) || val < 0 || val > 9999) { return false; }
  return true;
}

function btnOKClick() {
  var curRange = editdoc.selection.createRange();

  // error checking
  var checkList = ['txtLinkAddress','txtLinkName'];
  for (var idx in checkList) {
    var fieldname = checkList[idx];
    if (document.all[fieldname].value == "") {
      alert("You must specify a value for the '" +fieldname+ "' field!");
      document.all[fieldname].focus();
      return;
    }
  }

  // delete selected content (if applicable)
  if (editdoc.selection.type == "Control" || curRange.htmlText) {

    if (!confirm("Overwrite selected content?")) { return; }

    curRange.execCommand('Delete');
    curRange = editdoc.selection.createRange();
  }


 
 


  // create link
var linket = ' <a href="' + document.all.txtLinkType.value + document.all.txtLinkAddress.value + '" target="' + document.all.txtLinkTarget.value + '">' + document.all.txtLinkName.value + '</a> ';



  // insert link
opener.editor_insertHTML(objname, linket);



  // close popup window
  window.close();
}

var changeable = true;

function initier() {
    if(document.all.txtLinkAddress.value == document.all.txtLinkName.value) {
    changeable = true;
    }
    if(document.all.txtLinkAddress.value != document.all.txtLinkName.value) {
    changeable = false;
    }
}

function tjekType() {
    if(document.all.txtLinkName.value == '') {
    changeable = true;
    }
    if(changeable == true || document.all.txtLinkName.value == '') {
        if (document.all.txtLinkType.selectedIndex==1) {
        document.all.txtLinkName.value = document.all.txtLinkAddress.value;
        }
    }
}

function tjekType2() {
    if(changeable == true || document.all.txtLinkName.value == '') {
        if (document.all.txtLinkType.selectedIndex==1) {
            if(document.all.txtLinkAddress.value!=document.all.txtLinkName.value) {
            var changeable = false;
            }
        }
    }
}

</SCRIPT>
</HEAD>
<BODY id=bdy onload="initier();document.all.txtLinkAddress.focus();Init()" style="background: threedface; color: windowtext; BORDER-STYLE: none" scroll=no>

<table width="100%" border=0 cellspacing=6 cellpadding=0>
<tr><td nowrap>Link:&nbsp;</td><td><select name="txtLinkType" tabindex="0">
<option value="http://">webadresse</option>
<option value="mailto:">email</option>
<option value="">intern fil</option>
</select></td><td style="width:100%"><INPUT type="text" onfocus="select();tjekType2()" onkeyup="tjekType()" onchange="tjekType()" style="width:100%" name="txtLinkAddress" tabindex="1"></td><td><BUTTON style="width:70px" type="button" onclick="btnOKClick()" tabindex="4">OK</BUTTON></td></tr>

<tr><td>Linknavn:&nbsp;</td><td colspan="2"><INPUT type="text" style="width:100%" name="txtLinkName" tabindex="2" onblur="initier()" onfocus="select()"></td><td><BUTTON style="width:70px" type="button" onClick="window.close();" tabindex="5">Annuller</BUTTON></td></tr>
<tr><td>Åbn i:&nbsp;</td><td colspan="2" width="100%"><SELECT style="width:100%" name="txtLinkTarget" tabindex="3">
<OPTION value="_blank">Nyt vindue</OPTION>
<OPTION value="_self" selected>Samme vindue</OPTION>
</SELECT>
</td></tr>
</table>

</BODY>
</HTML>
Avatar billede Slettet bruger
02. maj 2003 - 12:16 #9
Jeg håber at det er iorden at vi deler :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester