Hejsan,
Jag håller på med en WYSIWYG funktion (som jag laddat ner) till ett artikelscript. Mitt förra bild-script (som Peter S så snällt hjälpte mig med) funkade prima. Men nu går det inte längre att använda funktionen för att infoga bilden i WYSIWYG-textfältet. Just nu finns det två funktioner som ska infoga bilder i textfältet. En av dem behöver bara funka så klart :)
Själv popup-fönstret med bilderna i:
echo "<td width=100px height=100px>";
echo "<input type=\"text\" name=\"imageurl\" value=\"$name\">";
echo "<input type=\"submit\" value=\" Submit \" onClick=\"insertImage();\" style=\"font-size: 12px;\" ><br/>";
echo "$name - <a href=gallery.php?page=erase&id=$id&fil=$name onClick=\"return confirm('Vill du verkligen ta bort bilden?');\">Ta bort</a><br/>";
echo "<a href=\"javascript:void f('<img src=img/$name>')\"><img src=\"../img/uploads/$name\" width=\"100px\" height=\"100px\" title=\"Uppladdad: $date - $description\" border=0></a>";
echo "</td>";
Och så JavaScripten i headern:
<script language="JavaScript" type="text/javascript">
var qsParm = new Array();
/* ---------------------------------------------------------------------- *\
Function : retrieveWYSIWYG()
Description : Retrieves the textarea ID for which the image will be inserted into.
\* ---------------------------------------------------------------------- */
function retrieveWYSIWYG() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
qsParm[key] = val;
}
}
}
/* ---------------------------------------------------------------------- *\
Function : insertImage()
Description : Inserts image into the WYSIWYG.
\* ---------------------------------------------------------------------- */
function insertImage() {
var image = '<img src="' + document.getElementById('imageurl').value + '">';
window.opener.insertHTML(image, qsParm['wysiwyg']);
window.close();
}
</script>
<script language="JavaScript">
function f(str)
{
window.opener.document.forms['article'].elements['article_text'].value += str;
window.close();
}
</script>
Peter SMedlem sedan dec. 20025 483 inlägg Lägg till id="imageurl" för ditt textfält.
Om det inte fungerar efter det: Vad händer då du trycker på knappen "Submit"? Fås något felmeddelande?
Tjena, jag testade att lägga till id="imageurl" i textfältet. Men det händer ingenting (som vanligt). Man klickar, och inget händer.
Peter SMedlem sedan dec. 20025 483 inlägg Hur ser koden ut i popupfönstret så som webbläsaren ser den?
Den ser ut så här:
<td width=100px height=100px>
<input type="text" name="imageurl" id="imageurl" value="Aqua_Revamped.png">
<input type="submit" value=" Submit " onClick="insertImage();" style="font-size: 12px;" ><br/>
Aqua_Revamped.png - <a href=gallery.php?page=erase&id=22&fil=Aqua_Revamped.png onClick="return confirm('Vill du verkligen ta bort bilden?');">Ta bort</a><br/>
<a href="javascript:void f('<img src=img/Aqua_Revamped.png>')"><img src="../img/uploads/Aqua_Revamped.png" width="100px" height="100px" title="Uppladdad: 2007-01-11 - Snygg dator." border=0></a>
</td>
<td width=100px height=100px>
<input type="text" name="imageurl" id="imageurl" value="iMac_Black.png">
<input type="submit" value=" Submit " onClick="insertImage();" style="font-size: 12px;" ><br/>
iMac_Black.png - <a href=gallery.php?page=erase&id=21&fil=iMac_Black.png onClick="return confirm('Vill du verkligen ta bort bilden?');">Ta bort</a><br/>
<a href="javascript:void f('<img src=img/iMac_Black.png>')"><img src="../img/uploads/iMac_Black.png" width="100px" height="100px" title="Uppladdad: 2007-01-10 - Imac" border=0></a>
</td>
Peter SMedlem sedan dec. 20025 483 inlägg Du har två fält med samma id, vilket inte är lagligt ;)
Byt namn och id på en av dem och testa igen. Fungerar det fortfarande inte? Byt type="submit" till type="button".
Hmm, jag tog bort den ena bilden (så bara en är kvar = ett id fält), testade också med att byta ut submit mot button. Men det fungerade inte i några fall. Förstår inte riktigt varför det inte vill fungera, har kopierat mycket kod från den medföljande funktionen för att infoga bilder.
Såhär ser orginalfunktionen ut:
function insertImage() {
var image = '<img src="' + document.getElementById('imageurl').value + '" alt="' + document.getElementById('alt').value + '" alignment="' + document.getElementById('alignment').value + '" border="' + document.getElementById('borderThickness').value + '" hspace="' + document.getElementById('horizontal').value + '" vspace="' + document.getElementById('vertical').value + '">';
window.opener.insertHTML(image, qsParm['wysiwyg']);
window.close();
}
Jag har tagit bort lite så den ser ut så här:
function insertImage() {
var image = '<img src="' + document.getElementById('imageurl').value + '">';
window.opener.insertHTML(image, qsParm['wysiwyg']);
window.close();
}
Peter SMedlem sedan dec. 20025 483 inlägg När anropar du retrieveWYSIWYG()?
<script language="JavaScript" type="text/javascript">
var qsParm = new Array();
/* ---------------------------------------------------------------------- *\
Function : retrieveWYSIWYG()
Description : Retrieves the textarea ID for which the image will be inserted into.
\* ---------------------------------------------------------------------- */
function retrieveWYSIWYG() {
var query = window.location.search.substring(1);
var parms = query.split('&');
for (var i=0; i<parms.length; i++) {
var pos = parms[i].indexOf('=');
if (pos > 0) {
var key = parms[i].substring(0,pos);
var val = parms[i].substring(pos+1);
qsParm[key] = val;
}
}
}
/* ---------------------------------------------------------------------- *\
Function : insertImage()
Description : Inserts image into the WYSIWYG.
\* ---------------------------------------------------------------------- */
function insertImage() {
var image = '<img src="' + document.getElementById('imageurl').value + '">';
window.opener.insertHTML(image, qsParm['wysiwyg']);
window.close();
}
</script>
Jag tittade i javascript-filen "wysiwyg.js" som inlkuderas för att generera wysiwyg funktionen på textfältet (där även knappen för att öppna pop-up fönstret skapas). Och länkarna för att öppna diverse fönster ser ut så här:
// InsertImage
else if (id == "InsertImage") {
window.open('gallery.php?page=images' + n,'popup','location=0,status=0,scrollbars=1,resizable=0,width=700,height=500');
}
// InsertTable
else if (id == "InsertTable") {
window.open(popupsDir + 'create_table.html?wysiwyg=' + n,'popup','location=0,status=0,scrollbars=0,resizable=0,width=400,height=360');
}
Jag kanske måste skicka med värdet wysiwyg= som i den andra länken?
Aha, jag använde mig av den här koden istället, och då fick jag in en trasig bild i alla fall:
// InsertImage
else if (id == "InsertImage") {
window.open('gallery.php?page=images&wysiwyg=' + n,'popup','location=0,status=0,scrollbars=1,resizable=0,width=700,height=500');
}
Peter SMedlem sedan dec. 20025 483 inlägg Men var anropas retrieveWYSIWYG()? Det där är ju bara definitionen av den; någonstans måste den anropas för att fylla qsParm[].
Frågan är vad insertHTML() vill ha som argument nummer två.
Red./ Jaha, det fungerar, då så ;)
Nu funkar det, när man kan välja mellan en bild :) Nu ska jag bara få det att funka när man har fler bilder inlagda. Och det är ju det där med id="imageurl".
R = Jag lade till imageurl = []; i JavaScript taggen, då funkade det en gång. Men sedan går det inte att infoga bilder mer :)
R2 = Den lägger bara in namnet på den första bilden hela tiden.
Varför går det inte bara att använda id=imageurl[] ?
Peter SMedlem sedan dec. 20025 483 inlägg Du kan ju döpa dem till imageurl1, imageurl2, o.s.v. Sedan
function insertImage(imgid) {
var image = '<img src="' + document.getElementById(imgid).value + '">';
window.opener.insertHTML(image, qsParm['wysiwyg']);
window.close();
}
insertImage('imageurl1');
insertImage('imageurl2');
Mja det går ju inte, varje bild/textfält etc loopas fram från en databas. Så man måste ju göra en array på något sätt.
R = Jag lade till en siffra efter namnet imageurl som uppdateras+1 efter varje loop. Så nu funkar det :)
Tack för hjälpen! Jag vet inte vilket svar jag ska acceptera... men jag tar nått!