Nu begynder det at ligne noget, men der står stadig undefined ud for link.
Desuden overføres hele stien fra min server til linket eks. <A href="
http://www.mit_domæne.dk/bibliotek/bibliotek/www.eksperten.dk" target=_self>Eksperten</A>
Når jeg prøver at redigere et eksisternde link ved at markere det og forsøge igen. Får jeg fejl i dialogArguments.curLink
Men lad mig se om jeg har forstået det nogenlunde rigtigt:
function doLink()
{
var CurHREF="";
var CurTarget="";
//Følgende skal ind i den funktion du kalder når man klikker "link"
// Du tager fat i den valgte tekst med:
rnHTML=iView.document.selection.createRange();
#iView er ID for mit iframe. document.selection fortæller at det er den markerede tekst som skal gemmes i createRange(), den valgte tekst gemmes i variablen rnHTML.
/* Du har nu en range, som indeholder fx tekst,
men den kan bestå af hvad som helst.
For at finde ud af hvad vi har fat i,
kigger vi på rnHTML's parentElement: */
if (rnHTML.parentElement) {
eElem=rnHTML.parentElement();
if (eElem.tagName=="A") { // Hov, vi har et a-tag.
CurHREF=eElem.href; // Så er der muligvis href og target
CurTarget=eElem.target;
LinkWin=window.showModalDialog("makelink.htm"); //Åben dialogen
# Jeg tror at det er window.showModalDialog der fortæller hvilket bibliotek jeg står i.
if (LinkWin) { //Hvis den returnerer true, så skift link
eElem.href=CurHREF; //Eller udskift den med noget andet.
eElem.target=CurTarget;
}
# Hvis LinkWin eksisterer ... hvad gør eElem.href?
} else { // Det var ikke et link, så laver vi et om den valgte tekst
if (rnHTML.htmlText.length>0) { //Hvis der da var noget tekst
CurHREF="";
CurTarget="_self";
LinkWin=window.showModalDialog("makelink.htm",window);
if (LinkWin) {
rnHTML.pasteHTML("<a href='"+CurLink+"' target='"+CurTarget+"'>"+rnHTML.htmlText+"</a>");
# Variablerne samles og den markerede tekst gemmes i rnHTML?
}
}
}
}
}
Siden makelink.htm
<script language="JavaScript">
function sendlink()
{ //dialogArguments svarer til window i kaldet til showModalDialog
// CurLink og CurTarget er variablerne i ovenstående script
dialogArguments.CurLink=document.all.link.value;
dialogArguments.CurTarget=document.all.target.value;
# dialogArguments.CurLink får værdien fra den document.all.link.value osv.
returnValue=true; //lægges tilbage i LinkWin i ovenstående script
window.close();
}
function closeme() {
returnValue=false;
window.close();
}
function focusIt()
{
document.all.link.value=dialogArguments.curLink;
document.all.target.value=dialogArguments.CurTarget;
// Der skal også lige være en der henter target.
document.all.link.focus();
document.all.target.focus();
# Hver gang siden loades hentes værdien fra vores variabel curLink og ?skrives i <input type=text name=link>?
}
</script>
Er jeg helt galt på den? Og hvorfor får jeg de ovenstående fejl?
<body onload="focusIt()" topmargin="3" leftmargin="3" bgcolor="#DDDDDD">
<Table border="0" cellpadding="3">
<tr><td>Link</td><td><INPUT TYPE="text" SIZE="20" name="link"></td></tr>
<tr><td>Hvor skal siden åbne</td><td>
<select name="target">
<option value="" selected>Internt link</option>
<option value="_blank">Eksternt link</option>
</select></td></tr>
</table>
<input onClick="sendlink()" type="submit" value="Send »">
<input onClick="closeme()" type="submit" value="Luk">