Avatar billede lemmings Nybegynder
05. november 2002 - 11:20 Der er 3 kommentarer og
1 løsning

Ændre indhold af iframe

Jeg arbejder med et redigeringssystem hvor jeg gør brug af en iframe hvor min hovedtekst bliver genereret. Det er muligt at vælge og ændre i teksten i iframen INDTIL jeg laver en postback - så bliver indholdet igen mit oprindelige.

Er der nogen der kan komme med gode idéer til hvordan jeg kan få den nye tekst acceptertet ved en postback, således at jeg kan gemme den i databasen (hvor den oprindelige kom fra).

/lemmings
Avatar billede askhoej Praktikant
05. november 2002 - 12:12 #1
Lidt kode ville sikkert gøre underværker :-)

/askhoej
Avatar billede lemmings Nybegynder
05. november 2002 - 12:42 #2
Mnjaa, jeg undlod i første omgang koden, da jeg ikke er sikker på at det ville hjælpe. Men måske alligevel?

Min side jeg inkluderer i iframet:

<%@ Page language="c#" Codebehind="DocView.aspx.cs" AutoEventWireup="true" Inherits="NewsAdmin.editor.DocView" %>
<asp:Panel id="msg" runat="server"><%# myMessage() %></asp:Panel>

...og Code-Behind:
public string ViewMessage;
       
private void Page_Load(object sender, System.EventArgs e)
{
DataBind();               
}

public string myMessage()
{
int getType = Convert.ToInt32(Session["myType"]);
int getId = Convert.ToInt32(Session["myId"]);
NewsAdmin.Message myMessage = new NewsAdmin.Message();
string Messenger = myMessage.ShowMessage(getId,getType).Trim();
           
return Messenger;
}


Her hentes den ind:
<IFRAME id="idContent" style="FILTER: Alpha(Opacity=85)" name="Tekst" src="editor/DocView.aspx" width="540" height="350">
</IFRAME>

...og et medfølgende script gør følgende med Iframet:
var isHTMLMode=false

function document.onreadystatechange(){
idContent.document.designMode="On";
}

function cmdExec(cmd,opt) {
if (isHTMLMode){alert("Fjern flué ben ved 'Ret HTML'");return;}
idContent.document.execCommand(cmd,"",opt);idContent.focus();
}

function setMode(bMode){
var sTmp;
isHTMLMode = bMode;
if (isHTMLMode){sTmp=idContent.document.body.innerHTML;idContent.document.body.innerText=sTmp;}
else {sTmp=idContent.document.body.innerText;idContent.document.body.innerHTML=sTmp;}
idContent.focus();
}


...hvis jeg sætter iframet til runat=server får jeg problemer med at 'idContent' ikke er defineret som scriptfejl.

Hjælper det?

/lemmings
Avatar billede askhoej Praktikant
05. november 2002 - 12:51 #3
Prøv:

private void Page_Load(object sender, System.EventArgs e)
{
  if(!IsPostBack)
  {
  DataBind();
  }
  else
  {
  //gem teksten
  }               
}
Avatar billede lemmings Nybegynder
26. februar 2005 - 11:19 #4
Lukker spørgsmål!!
/lemmings
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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