07. maj 2002 - 14:38Der er
25 kommentarer og 2 løsninger
ingen flash, men billede
hvordan laver jeg noget html som viser et billede istedet for at downloade en flashplugin?
Det skal ikke være noget med at den redirecter til en anden side eller noget i den stil, men blot en ændring af <object> tagget. Det vil sige at hvis der ikke er installeret flash så skal den bare vise en jpg eller gif i det område hvor flashen ellers skulle vises.
Jeg ved ikke hvor meget du kender til javascript, men jeg vil foreslå at du opretter to .js filer hvor den ene indeholder html-kode til billede, og den anden indeholder koden der indsætter flash.
Du kan så først bruge dette script til at finde ud af om brugeren har en flash plugin:
du placerer blot en <img kommando (i samme størrelse) inden i din <object kommando.
Samtidig skal du så undgå den behavior flash ofte har med at ville opdatere. Det ved jeg ikke rigtig hvordan man gør. Men vent lidt. der kommer nok andre forbi der ved det.
mener bare man skal undgå at indsætte codebase-atrributet i <object>, så henter den ikke flash. Altså: <object classid="hvad-det-nu-end-er-for-flash"> <param name="movie" value="blabla.swf" /> <img alt="Billede, der vises istedet for flash" src="blabla.jpg" /> </object>
kan ikke huske hvordan det præcist er for flash med den dér classid og hvilke params den normalt skal have, men bare sørg for at der ikke er noget codebase
Indsæt dette i din header: ----------------------------- <script language="JavaScript"> <!-- function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0 var ok=false; document.MM_returnValue = false; with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) { ok=(plugins && plugins[plgIn]); } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1 if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash; else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir; else ok=autoGo; } if (!ok) theURL=altURL; if (theURL) window.location=theURL; } //--> </script> --------------------- Og dette i din body: --------------------- onLoad="MM_checkPlugin('Shockwave Flash','SideMedFlash','SideUdenFlash',true);return document.MM_returnValue" -------------------- Så skal du bare lige selv angive sidenavnene der hvor der står "sidemadflash" og "sideudenflash"...
anvend n1nja's script men istedet for gør sådan <script> function MM_checkPlugin(plgIn, theURL, altURL, autoGo) { //v4.0 // har ikke checket koden var ok=false; document.MM_returnValue = false; with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) { ok=(plugins && plugins[plgIn]); } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1 if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash; else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir; else ok=autoGo; } return ok // nu skulle den returnere true, hvis der er Falsh installeret }</script> <body> en masse HTML <script> if (MM_checkPlugin('Shockwave Flash')) { document.writeln("<object cl .... alt det HTML der er i dit objekt"); } else { document.writeln("<img src=\"alternativ.gif\">"); } </script> resten af din HTML
kors hvor det kører. funktionen skal vel se sådan her ud function MM_checkPlugin(plgIn) { //v4.0 // har ikke checket koden var ok=false; document.MM_returnValue = false; with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) { ok=(plugins && plugins[plgIn]); } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1 if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash; else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir; } return ok // nu skulle den returnere true, hvis der er Falsh installeret }
<script> function MM_checkPlugin(plgIn) { //v4.0 // har ikke checket koden var ok=false; document.MM_returnValue = false; with (navigator) if (appName.indexOf('Microsoft')==-1 || (plugins && plugins.length)) { ok=(plugins && plugins[plgIn]); } else if (appVersion.indexOf('3.1')==-1) { //not Netscape or Win3.1
if (plgIn.indexOf("Flash")!=-1 && window.MM_flash!=null) ok=window.MM_flash; else if (plgIn.indexOf("Director")!=-1 && window.MM_dir!=null) ok=window.MM_dir; } return ok // nu skulle den returnere true, hvis der er Falsh installeret } }</script>
kunne jeg lokke dig til at afprøve <a href=# onclick="alert(window.MM_flash);">clip and copy</a> og se om det giver true hos dig. hvis det gør kan jeg få det til at virke. ellers kan jeg nok ikke.
Sjovt nok så er det eneste der virker 100% - At lave en meget lille og ganske simpel flashfilm.
Så bliver stilen fuldstændigt det samme som vi gør i javascript. Nemlig at bruge kommandoer der findes i enkelte versioner og reagerer flashen på det - Så viser vi enten flashen, et updatelink eller et plugin.
F.eks kan man tjekke for om flashpluginnet er version 6.x med
if(createEmptyMovieClip()){ //vis min flash }else{ getURL("siden_med_billedet.html"); }
hej nikolajdu gamle svinger. jeg tænkte også på det, men han vil IKKE have en redirect. så jeg var nød til at finde Flash via VBScript (uf). men muligvis if(this.createEmptyMovieClip()){ document.writeln( .... osv .... ) }else{ document.writeln( .... osv .... ) }
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.