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?
16 svar · 630 visningar · startad av streetrobban
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>
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.
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>
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();
}
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');
}
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[] ?
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!