Editor Problem Wert an Funktion = ??? Hilfe
Simone
- javascript
Hi
Ich bin dabei einen kleinen Editor zu schreiben.
Habe jedoch ein super Problem bei der Übergabe von Variablen
in Javascript und bekomme das einfach nicht hin
meine Code:
function doImage()
{
var imgSrc = prompt('Enter image location', '');
if(imgSrc != null)
iBody.document.execCommand('insertimage', false, imgSrc);
}
Soweit so gut !
diese Funktion ruft ein Prompt auf und ich kann die Bild URL eingeben.
das klappt
wenn ich aber ein Fenster öffne um dort eine Eingabe zu machen komme ich einfach nicht mehr weiter
Beispiel für die aufzurufende Eingabe Datei :
<html>
<head>
<style type="text/css">
BODY {
background-color: buttonface; }
TD, INPUT, SELECT {
font-family: "MS Sans Serif"; font-size: xx-small; vertical-align: middle; }
TABLE.dlg { border:0; }
.dlg TD { align: left; height: 20; }
.dlg INPUT { border-size: 2px; }
INPUT.button { border-top: 1px solid white; border-left: 1px solid white;
border-bottom: 1px solid black; border-right: 1px solid black;
font-size: x-small; width: 60; }
SELECT { height: 75%; }
</style>
<title>Insert Image</title>
<script language="JavaScript">
function attr(name, value) {
if (!value || value == "") return "";
return ' ' + name + '="' + value + '"';
}
function insertImage() {
window.returnValue = '<IMG border="0"' + attr("alt", alt.value) + attr("src", url.value)
+ attr("align", align[align.selectedIndex].value)
+ attr("width", width.value)
+ attr("height", height.value)
+ '/>';
window.close();
}
function cancel() {
window.returnValue = null;
window.close();
}
</script>
</head>
<body topmargin="0" leftmargin="0" style="border: 0; margin: 0;" scroll="no">
<table class="dlg" cellpadding="0" cellspacing="2" width="100%" height="100%">
<tr>
<td colspan="5">
<table width="100%">
<tr>
<td nowrap>Picture Info </td>
<td valign="middle" width="100%"><hr width="100%"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="10"> </td>
<td width="70">Url:</td>
<td valign="middle" colspan="3">
<input type="text" name="url" value="http://yourhost/images/yourimage.gif" size="60">
</td>
</tr>
<tr>
<td> </td>
<td width="70">Alt Text:</td>
<td valign="middle"><input type="text" name="alt" value="Your Image" size="25"></td>
<td width="70">Align:</td>
<td valign="middle">
<select name="align">
<option value="left">Left</option>
<option value="absbottom">Abs Bottom</option>
<option value="absmiddle">Abs Middle</option>
<option value="baseline">Baseline</option>
<option value="bottom">Bottom</option>
<option value="middle">Middle</option>
<option value="right">Right</option>
<option value="texttop">Text Top</option>
<option value="top">Top</option>
</select>
</td>
</tr>
<tr>
<td> </td>
<td width="70">Width:</td>
<td valign="middle"><input type="text" name="width" value="100%" size="4"></td>
<td width="70">Height:</td>
<td valign="middle"><input type="text" name="height" value="100%" size="4"></td>
</tr>
<tr>
<td colspan="5">
<table width="100%">
<tr>
<td valign="middle" width="100%" colspan="2"><hr width="100%"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td> </td>
<td colspan="4" align="right">
<input class="button" type="button" value="Insert" title="Insert Table" onclick="insertImage()">
<input class="button" type="button" value="Cancel" title="Cancel Dialog" onclick="cancel()">
</td>
</tr>
</table>
</body>
</html>
_______________________________
Soweit ich das verstanden habe gibt es einige Möglichkeiten der Übergabe
evtl. Per Opener
window.opener.iBody.document.execCommand('insertimage', false, imgSrc);
window.close()
Vielleicht könnt ihr mir auf die "Sprünge" helfen!
Simone
PS: es ist super das es dieses Forum hier gibt
Soweit ich das verstanden habe gibt es einige Möglichkeiten der Übergabe
evtl. Per Opener
Ja das ist richtig. window.opener ist das Fenster, in dem die window.open-funktion aufgerufen wurde. dabei hat ist window.openenr ein Window-Objekt, d.h. das window.openenr alle Eigenschaften und Variablen hat wie window
Außerdem kannst du über window.opener Funktionen des Parent-Windows aufrufen. Beispiel:
datei1.html:
__________________________________
<html>
<head>
<title>Aufrufer</title>
<script type="text/javascript"><!--
function demo(str) {
alert("Dies ist die Demo-Funktion. Aufgerufen mit '"+str+"'");
}
--></script>
</head>
<body>
<input value="Fenster öffnen" type="button" onclick="window.open('datei2.html','_blank','height=400,width=600');">
</body>
</html>
__________________________________
datei2.html:
__________________________________
<html>
<head>
<title>Aufgerufener</title>
</head>
<body>
<input value="Funktion aufrufen" type="button" onclick="window.opener.demo('hier!');">
</body>
</html>
__________________________________
Hi
Verstanden habe ich das Prinzip schon
Dennoch gelingt es mir nicht die Funktionen für mein Beispiel anzupassen.
Gelingt mir einfach nicht
Simone
Dank Dir !
HI
Wo ist das Problem ??
Das Script ist angepasst
Wenn ich mit alert(imgHTML); die Variable Abrufe bekomm' ich auch diese so wie es sein sollte.
Wenn ich die Variable mit window.opener.demo('imgHTML');
übergeben möchte geht das nicht!
[imgHTML] ist der Übergabewert
Was mach ich falsch ?
Simone
Code:
<script language="JavaScript">
function attr(name, value) {
if (!value || value == "") return "";
return ' ' + name + '="' + value + '"';
}
function insertImage() {
window.returnValue = '<IMG border="0"' + attr("alt", alt.value) + attr("src", url.value)
+ attr("align", align[align.selectedIndex].value)
+ attr("width", width.value)
+ attr("height", height.value)
+ '/>';
imgHTML = window.returnValue;
//alert(imgHTML);
window.opener.demo('imgHTML');
window.close();
}
function cancel() {
window.returnValue = null;
window.close();
}
</script>