Avatar billede donkazz Nybegynder
05. oktober 2006 - 15:00 Der er 7 kommentarer

Problemer med <object data="fil.asp" i IE 7 og Firefox online

Hej!

Jeg har et meget underligt problem...
Jeg har en ASP-side, hvor man kan indsætte et billede på siden vha. et object.

Objectet ser sådan her ud:

<object id="image" type="text/x-scriptlet" data="vaelgpic.asp"></object>



vaelgpic.asp ser sådan her ud:

<html>
<head>
<title>Vælg billede</title>
<script language="javascript">
function doClick(image) {
    window.external.raiseEvent("insertImage", image);
}
</script>
</head>

<body topmargin=2 marginheight=2 leftmargin=2 marginwidth=2 id="colors">

<form name="image" style="margin: 0; margin-bottom: 0; margin-left: 0; margin-right: 0; margin-top: 0;">

<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
    <td align="center">
   
<select name="filnavn" size="1" class="input">

<option value="" selected>Klik her for at vælge billede</option>

<% brugerMappe = Server.MapPath("/billeder/")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(brugerMappe)
Set userFiles = f.Files
For Each fileobj in userFiles
imagePath = /billeder" & "/" & fileobj.Name %>

<option value="<%=imagePath%>"><%=fileobj.Name%></option>

<% next %>

</select>

&nbsp; <input type="button" value="Indsæt billede" class="submitLink" onClick="doClick(document.image.filnavn.value);">

</td>
</tr>
</table>
</form>
</body>
</html>


Hele det der virker fint i IE 6, men ikke i Firefox.
Nu har jeg så lige testet det med IE 7 RC1, og det virker heller ikke - MEN, det virker hvis jeg kører det på localhost og ikke fra en webserver??
Hvorfor? Det er da fuldstændigt sindssygt underligt, er det ikke? Og hvad kan jeg gøre for at løse det? Jeg har ikke så meget forstand på <object> tag'et, så der er muligvis en smartere (og mere rigtig) måde at gøre det på. Fyr endeligt løs! :)

Mvh.
Kasper
Avatar billede olebole Juniormester
05. oktober 2006 - 15:48 #1
<ole>

Nej, ikke spor sært. FF kan ikke afvikle scriptlets, der er en proprietær MS-teknologi - og IE7 er jo ikke en færdig browser, så det er ikke til at vide, hvad den indeholder af bugs  =)

- hvorfor ikke bare bruge en iframe?

/mvh
</bole>
Avatar billede donkazz Nybegynder
05. oktober 2006 - 15:58 #2
Hej Ole,

Ja det er jeg også igang med at prøve, men hvordan kalder jeg så den javascript funktion fra vaelgpic.asp der indsætter billedet?

<script language="javascript">
function doClick(image) {
    window.external.raiseEvent("insertImage", image);
}
</script>

Sådan ser den ud nu.. Nogle forslag?

Funktionen i den fil der indeholder <object> tag'et ser sådan her ud:
<script type="text/javascript" for="image" event="onscriptletevent(name, eventData)">
switch(name) {
case "insertImage":
doFormat("InsertImage",eventData);
imageToggle();
}
</script>
Avatar billede olebole Juniormester
05. oktober 2006 - 16:15 #3
Hvis du vil kalde funktionen 'foo' i 'moderdokumentet', skriver du:
    parent.foo();

- så mon ikke, du bare kan skrive:
    parent.doFormat("InsertImage", image);
    parent.imageToggle();

Undgå i øvrigt ID'er som 'image', 'iframe', 'submit', o.lign, da den slags kan give JS-problemer  ;o)
Avatar billede donkazz Nybegynder
06. oktober 2006 - 09:41 #4
Har du en logisk forklaring på hvorfor <object> virker på localhost men ikke på en webserver med IE7? Det er det der undrer mig rigtig meget... :-|

Jeg prøver lige med dit forslag der og vender så tilbage... :)
Avatar billede donkazz Nybegynder
06. oktober 2006 - 10:11 #5
Dios mio, det virker jo! Dog ikke i Firefox.. Er der noget jeg kan gøre ved det? Det kunne være rart at slå 2 fluer med ét smæk! :-)
Avatar billede donkazz Nybegynder
06. oktober 2006 - 10:12 #6
Ved du hvad, glem Firefox! :-D Det er en gammel side, det vigtige er bare at den virker i IE..  Hvis du lige smider et svar ryger der 200 point din vej :-D
Avatar billede donkazz Nybegynder
06. oktober 2006 - 13:19 #7
Hov jeg har lige et hurtigt spørgsmål... Jeg har på samme side også et objekt ændrer tekstfarven på det markerede. Den ændrede jeg også til at bruge div's og iframe, men den ændrer ikke teksten, den blinker bare lige hurtigt og deselecter det valgte.

colors.asp <- Bruges i iframen i stedet for <object> tag'et
function doClick(farven) {
    parent.doFormat("colorchange", farven);
    parent.paletteToggle();
}

i parent:
case "colorchange":
doFormat("ForeColor",eventData);
paletteToggle();
}

og i JS filen:
function doFormat(command,argument) {
    frames.myEditor.focus()
    var tr = frames.myEditor.document.selection.createRange();
    tr.execCommand(command,false, argument)
    tr.select()
    frames.myEditor.focus()
}


Den er sgu tricky... Any suggestions?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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