webForumDet fria alternativet

kant runt flashobjekt i IE

Flashur Flash, Shockwave

10 svar · 11 234 visningar · startad av Ann-Sofie

Ann-SofieMedlem sedan mars 2003136 inlägg
#1

Fånigt men jag blir galen! Jag har flera olika objekt skapade i Flash som jag publicerat på en hemsida. När jag tittar på den i IE så dyker det upp en prickad kantlinje runt varje flash-objekt då jag pekar med musen på objektet. (de är klickbara)

Varför? och hur får jag bort det?

Tacksam för er snabba proffesionella hjälp!!

ann-sofie

mirandirMedlem sedan maj 2003750 inlägg
#2

Detta beror på att Microsoft förlorat en patenttvist i USA och därmed tvingats att ta bort att plugins automatiskt startar i IE. Därför måste man klicka på dem för att flashfilmen skall spelas upp.

Men detta gäller enbart filmer som bäddats in i HTML dokumentet med hjälp av object och embed taggar direkt i HTML koden. Om man däremot lägger till dessa taggar med javascript så fungerar det som normalt.

Adobe har släppt en uppgradering till Flash som ger två nya "HTML-templates" som du kan använda vid publicering.
http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=7c29e252

Annars kan jag rekomendera att man använder swfObject. Det innehåller en mängd suveräna features och är samtidigt väldigt enkel att komma igång med.

swfObject kan du hämta hem här:
http://blog.deconcept.com/swfobject/

/Mirandir

Ann-SofieMedlem sedan mars 2003136 inlägg
#3

Tack!

Tusen tack för dit utförliga svar, jag ska kolla länkarna!!

mvh
ann-sofie

oskarsMedlem sedan nov. 20051 317 inlägg
#4

Åherregud. Det där har jag också märkt.. både på jobbet och hemma. Det är ju skitjobbigt. Trodde jag kommit åt någon inställning både på jobbet och hemma. Men tydligen inte =) Tack för upplysningen!

LivijnMedlem sedan mars 200630 inlägg
#5

Haha! Jag me! På min dator hemma, har inge jobb är 13 år :D

saturdayMedlem sedan jan. 2007133 inlägg
#6

Så mycket enklare än denna lösning kan det knappt bli...

Jag gör så här för att komma runt "active-content-ramen".

Först skapar jag en js-fil som. Exempelvis, "activeContent.js". I den kör jag in följande script:

function WriteFlashHtml(){
document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="index" align="middle">\n');
document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
document.write('<param name="movie" value="index.swf" />\n');
document.write('<param name="menu" value="false" />\n');
document.write('<param name="quality" value="high" />\n');
document.write('<param name="salign" value="lt" />\n');
document.write('<param name="bgcolor" value="#ffffff" />\n');
document.write('<embed src="index.swf" menu="false" quality="high" salign="lt" bgcolor="#ffffff" width="100%" height="100%" name="index" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n');
document.write('</object>\n');
}

Om du kollar på ovan script ser du att jag via JavaScript skriver ut den kod som jag genererat fram via Flash, på enklast möjligaste vis.

Först skapar jag en funktion, som i detta fall heter "WriteFlashHtml", för att jag ska kunna anropa funktionen någonstans i HTML koden. Innanför funktionen skapar jag följande rader...

document.write('[En HTML-kod-rad]\n');

... för varje HTML rad jag vill skriva ut.

Du kan göra detta via mindre kod om du vill, genom att bara lägga in alla HTML kod rader innanför samma document.write tag, men jag föredrar att ha dem på varsin rad.

Sedan hoppar jag till HTML dokumentet där jag ska presentera min flashfil...

Innanför <head> taggen skriver jag in följande rad:

<script src="[sökväg]/activeContent.js" type="text/javascript"></script>

På så vis är nu JavaScript funktionen länkad in i HTML dokumentet och detta gör funktionen tillgänglig.

Innanför body taggen, där jag vill skriva ut HTML koden för SWF-filen skriver jag sedan:

<script type="text/javascript">WriteFlashHtml();</script>

Nu är faktiskt allt klart. Kör jag HTML dokumentet i en webbläsare är ramen borta kring SWF-filen.

Under <script type="text/javascript">WriteFlashHtml();</script> brukar jag dock lägga till följande kod också:

<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="index" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="index.swf" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="salign" value="lt" />
<param name="bgcolor" value="#ffffff" />
<embed src="index.swf" menu="false" quality="high" salign="lt" bgcolor="#ffffff" width="100%" height="100%" name="index" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>

Detta för att om någon stackare skulle stängt av JavaScript i sin webbläsare(Som om det skulle hända) så körs detta i stället. Dock syns ramen ifall denna kod körs.

AlarMedlem sedan nov. 2004149 inlägg
#7

Koden funkar alldeles utmärkt i PC men om man använder Mac-versionen av Internet Explorer så skiter det sig - Flash visas inte alls!
Dock funkar det i Mac om man använder Firefox eller Safari. Men där funkar det ju även utan koden...
Någon som har en idé om varför det inte funkar i Mac-versionen av Internet Explorer?
/Alar

BlixtsystemsMedlem sedan maj 2005704 inlägg
#8

Har du testat om swfObject funkar?

Även om detta är förmodligen frågan om ett JS problem så måste jag säga att IE för mac är den mest hopplösa webbläsaren att få flash att funka i som det skall.
Den sista versionen som gjordes är väl 5.2, och den skall funka med swfObject.
Om man skall utveckla med stöd för tidigare versioner så skall det finnas väldigt specifika krav att göra det i min mening.

emissionMedlem sedan dec. 19996 721 inlägg
#9

Jag har också för mig att swfObject fungerar för MacIE, men att stödja IE för Mac känns ungefär lika intressant som att stödja Netscape 4.2 för Windows.

AlarMedlem sedan nov. 2004149 inlägg
#10

Jahapp... Jag borde naturligtvis testat swfObject först men fick för mig att prova koden i inlägget ovan eftersom den var lite kortare...
Hur som helst, swfObject funkar utmärkt med både PC och MacIE, och inte heller bråkar den med Safari eller Firefox. Frid och fröjd...
Anledningen till att jag ville få activeContent.js att funka även i MacIE var att några personer som sitter med ganska gamla Mac och som dessutom använder IE, hörde av sig med lite gnäll...
/Alar

saturdayMedlem sedan jan. 2007133 inlägg
#11

Ok, så min kod fungerar inte för Mac? Skumt, det kommer direkt från Abodes hemsida, i princip... Jaja, då får jag väl läsa igenom swfObject också då. :( Orka.

131 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)