Avatar billede fenriz Nybegynder
27. januar 2005 - 19:02 Der er 3 kommentarer og
1 løsning

Event på createlink

Hvordan laver jeg eventhandel til denne popoupmenu som er til at oprette et link i en editor.

  if (cmdID == 'custumlink') {
  ???
  }

Selv koden på popup dokumentet insert_link.html ligger under her
-------------------------------------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML 3.2//EN">
<HTML id=dlgImage STYLE="width: 40.1em; height: 23em">
<HEAD>
<script language="javascript1.2" src="tabula_external.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="MSThemeCompatible" content="Yes">
<TITLE>Insert link</TITLE>
<style>
  html, body, button, div, input, select, fieldset { font-family: MS Shell Dlg; font-size: 8pt; position: absolute; };
</style>
<SCRIPT defer>
var initialize=false;
var found=false;
var elm;


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

function _getTextRange(elm) {
  var r = elm.parentTextEdit.createTextRange();
  r.moveToElementText(elm);
  return r;
}

window.onerror = HandleError

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




function Init() {
  var grngMaster;
  var htmlSelectionControl = "Control";
  var globalDoc = window.dialogArguments;
  var sel=globalDoc.DOM.selection;
 
  initialize=true;
  // event handlers 
  document.body.onkeypress = _CloseOnEsc;
  btnOK.onclick = new Function("btnOKClick()");
 

grngMaster = sel.createRange();

if (sel.type == htmlSelectionControl) {
  elm = grngMaster.item(0);
  } else {
  elm = grngMaster.parentElement();
  }

  found=false;
  while ((!found) && (elm.tagName.toLowerCase()!='body')) {
    if(elm.tagName.toLowerCase() == 'a') {
      found = true;
      } else {
        elm = elm.parentElement;
      }           
    }
  if (found){
    txtLink.value = elm.href;
    if (txtLink.value.indexOf(':')!=0) {
      selLinkType.value=txtLink.value.substring(0,txtLink.value.indexOf(':'));
      } else {
        selLinkType.value='';
      }
    if (elm.target!='') {
      if (elm.target.toLowerCase()=='_blank' || elm.target.toLowerCase()=='_top' || elm.target.toLowerCase()=='_parent' || elm.target.toLowerCase()=='_self') {
        selTarget.value=elm.target.toLowerCase()
        txtTargetOther.disabled=true
        } else {
        selTarget.value='';
        txtTargetOther.disabled=false;
        txtTargetOther.value=elm.target;
        }
      } 
    txtLinkText.value=elm.innerHTML;
    } else {
    if (sel.type == htmlSelectionControl) {
      txtLinkText.value=grngMaster.item(0).outerHTML;
      } else {
      txtLinkText.value=grngMaster.htmlText
      }
    } 

txtLink.focus();
initialize=false;

}

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

function selTargetChange() {
  if (selTarget.value=='') {
    txtTargetOther.disabled=false;
    } else {
    txtTargetOther.disabled=true
    }
}

function selLinkTypeChange() {
if (!initialize) {
  if (txtLink.value.indexOf(':')!=0) {
    if (selLinkType.value!='') {
      txtLink.value= selLinkType.value+txtLink.value.substring(txtLink.value.indexOf(':'));
      } else {
      txtLink.value=selLinkType.value+txtLink.value;
      }
    } else {
    if (selLinkType.value!='') {
      txtLink.value= selLinkType.value+'://'+txtLink.value;
      }
    }
  }
}

function link_action() {
  tabula_link_action(selXType.value);
}

function btnOKClick() {
  var elmImage;
  var intAlignment;
  var htmlSelectionControl = "Control";
  var globalDoc = window.dialogArguments;
  var grngMaster = globalDoc.DOM.selection.createRange();
  var sel=globalDoc.DOM.selection;
 
  // error checking

  if (!txtLink.value || txtLink.value == "http://") {
    alert("Link URL must be specified.");
    txtLink.focus();
    return;
  }
  // build link
  var newlink='<a href="'+txtLink.value+'"';
  if (selTarget.value!='') {
    newlink=newlink+' target="'+selTarget.value+'"';
    }
  else if (txtTargetOther.disabled==false && txtTargetOther.value!='') {
    newlink=newlink+' target="'+txtTargetOther.value+'"';
    } 
  newlink=newlink+'>'+txtLinkText.value+'</a>';

  if (found) {
    elm.href=txtLink.value;
    if (selTarget.value!='') {
      elm.target=selTarget.value;
      }
    else if (txtTargetOther.disabled==false && txtTargetOther.value!='') {
      elm.target=txtTargetOther.value;
      }
    else {
      elm.removeAttribute('target');
      } 
    }
  else if (sel.type == htmlSelectionControl) {
    grngMaster.item(0).outerHTML=newlink;
    }
  else { 
    grngMaster.pasteHTML(newlink);
    }

//  grngMaster.collapse(false);
//  grngMaster.select();
  window.close();
}
</SCRIPT>
</HEAD>
<BODY id=bdy onload="Init()" style="background: threedface; color: windowtext;" scroll=no>


<DIV id=divTargetOther style="left: 8.54em; top: 9.9168em; width: 7em; height: 1.2168em; ">Window Name:</DIV>
<INPUT ID=txtTargetOther type=text style="left: 16.54em; top: 9.647em; width: 13.36em;height: 2.1294em; " tabIndex=3 onfocus="select()">

<DIV id=divLinkText style="left: 0.98em; top: 12.8067em; width: 6.58em; height: 1.2168em; ">Link Text:</DIV>
<INPUT type=text ID=txtLinkText tabIndex=20 style="left: 8.54em; top: 12.5025em; width: 21.5em; height: 2.1294em; " onfocus="select()" disabled>

<DIV id=divLink style="left: 0.98em; top: 4.1067em; width: 6.58em; height: 1.2168em; ">Link:</DIV>
<INPUT type=text ID=txtLink tabIndex=1 style="left: 8.54em; top: 3.8025em; width: 21.5em; height: 2.1294em; " onfocus="select()">

<DIV id=divLinkType style="left: 0.98em; top: 1.2168em; width: 4.76em; height: 1.2168em; ">Link Type:</DIV>
<SELECT size=1 ID=selLinkType tabIndex=15 style="left: 8.54em; top: 1.0647em; width: 6.72em; height: 1.2168em; " onChange="selLinkTypeChange()">
<OPTION id=optFtp value="ftp"> ftp: </OPTION>
<OPTION id=optHTTP value="http" SELECTED> http: </OPTION>
<OPTION id=optHTTPS value="https"> https: </OPTION>
<OPTION id=optMailto value="mailto"> mailto: </OPTION>
</SELECT>

<DIV id=divTarget style="left: 0.98em; top: 7.0168em; width: 4.76em; height: 1.2168em; ">Target:</DIV>
<SELECT size=1 ID=selTarget tabIndex=2 style="left: 8.54em; top: 6.7647em; width: 13.72em; height: 1.2168em; " onChange="selTargetChange()">
<OPTION id=optNotSet2 value="" SELECTED> </OPTION>
<OPTION id=optBlank value="_blank"> New Window (_blank) </OPTION>
<OPTION id=optSelf value="_self"> Same Window (_self) </OPTION>
<OPTION id=optParent value="_parent"> Parent Window (_parent) </OPTION>
<OPTION id=optTop value="_top"> Browser Window (_top) </OPTION>
</SELECT>

<BUTTON ID=btnOK style="left: 31.36em; top: 1.0647em; width: 7em; height: 2.2em; " type=submit tabIndex=40>OK</BUTTON>
<BUTTON ID=btnCancel style="left: 31.36em; top: 3.6504em; width: 7em; height: 2.2em; " type=reset tabIndex=45 onClick="window.close();">Cancel</BUTTON>

<!--
<BUTTON ID=btnGetImage style="left: 31.36em; top: 12.5504em; width: 7em; height: 2.2em; " type=button tabIndex=45 onClick="link_action()">Find Content</BUTTON>
<SELECT size=1 ID=selXType tabIndex=2 style="left: 28.36em; top: 16em; width: 10em; height: 1.2168em; " >
<OPTION  value="article"> Article </OPTION>
<OPTION  value="slideshow"> Slideshow  </OPTION>
<OPTION  value="timeline"> Tidslinie  </OPTION>
</SELECT>
-->

</BODY>
</HTML>
Avatar billede softspot Forsker
27. januar 2005 - 22:18 #1
Hvad er det du vil have?

* Kode til at vise popupbilledet (window.open)

* Kode til at vise kontekstmenuen (oncontextmenu=handler)

* Noget helt tredie...
Avatar billede fenriz Nybegynder
28. januar 2005 - 11:24 #2
en kode der skal være inde i denne funktion jeg har til mine knapper, så når jeg nu har klikker ok i min popup, at det link med med det hele kommer ind i mit CMS system.
  if (cmdID == 'custumlink') {
  ??(ta tekststreng fra popup og lig ind i ?
  }
Avatar billede softspot Forsker
29. januar 2005 - 02:55 #3
Under antagelse af at du har åbnet dette vindue med window.open, så kan du benytte window.opener til at få fat i det vindue som har åbnet dialogen. På det vindue som åbner dialogen kan du have en funktion som du kalder når du klikker på OK-knappen. Funktionen kan f.eks. have en parameter der er returværdien fra dette popupvindue.

Er det noget i den stil du har behov for?
Avatar billede fenriz Nybegynder
20. juni 2005 - 13:47 #4
lavet det hele om...
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