Avatar billede louise_christensen Nybegynder
26. august 2003 - 15:04 Der er 15 kommentarer

flash detect i frameset

Jeg har fundet dette flash detect script på http://www.kirupa.com/developer/mx/detection.htm.

Mit problem er, at min index side kun indeholder et frameset, som henter en forside ind i en contentframe, når sitet loades. På denne forside kan brugeren så vælge sprog, og sprogparameteren sendes videre via. asp.

Hvor skal jeg sætte scriptet ind, og hvordan ændrer jeg denne del af scriptet, så den henter den rigtige forside ind i framesettet(dvs. med eller uden flash indhold), og samtidig tillader brugeren at vælge en sprogparameter?;

if ( MM_FlashCanPlay ) {
    window.location.replace("http://www.kirupa.com/flash.htm");
} else{
    window.location.replace("http://www.kirupa.com/noflash.htm");
}

Jeg ved ikke om denne forklaring er forståelig nok, men ellers prøv at se opbygningen på min hjemmeside www.clouise.dk...

Resten af scriptet er her;

<SCRIPT LANGUAGE=JavaScript1.1>
<!--
var MM_contentVersion = 6;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
        var words = navigator.plugins["Shockwave Flash"].description.split(" ");
        for (var i = 0; i < words.length; ++i)
        {
        if (isNaN(parseInt(words[i])))
        continue;
        var MM_PluginVersion = words[i];
        }
    var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
  && (navigator.appVersion.indexOf("Win") != -1)) {
    document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
    document.write('on error resume next \n');
    document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
    document.write('</SCR' + 'IPT\> \n');
}
if ( MM_FlashCanPlay ) {
    window.location.replace("http://www.kirupa.com/flash.htm");
} else{
    window.location.replace("http://www.kirupa.com/noflash.htm");
}
//-->

</SCRIPT>
Avatar billede roenving Novice
26. august 2003 - 15:12 #1
if ( MM_FlashCanPlay ) {
    top.frames["indhold"].location.replace("http://www.kirupa.com/flash.htm");
} else{
    top.frames["indhold"].location.replace("http://www.kirupa.com/noflash.htm");
}
Avatar billede louise_christensen Nybegynder
26. august 2003 - 15:14 #2
ok men hvor skal jeg lægge scriptet? I headeren på min indexside, som indeholder framesettet?
Avatar billede roenving Novice
26. august 2003 - 15:22 #3
Ja, det vil jo være et godt sted som vil gøre det uafhængigt af andre ting ...

-- jeg får forøvrigt flere fejl på den fil du har i den skjulte ramme ...
Avatar billede louise_christensen Nybegynder
26. august 2003 - 15:27 #4
ok det var jeg ikke klar over... Der ligger et script som skal preloade nogle billeder. Det må jeg lige få kigget på.

I framesettet linker jeg til forsiden lige nu. Kan jeg ikke bare erstatte det link med en #, da jeg jo loader forsiden fra headeren istedet?
Avatar billede roenving Novice
26. august 2003 - 15:33 #5
Hov, det var jo lige lidt vigtigt ...

Sæt det ind som en funktion, som kan kaldes, for ellers vil det måske/sikkert blive udført før hele framesettet er skabt ...

altså

<SCRIPT LANGUAGE=JavaScript1.1>
<!--
function detectFlash(){
var MM_contentVersion = 6;

-- og en ekstra } til sidst og så:

<frameset ... onload="detectFlash()">

-- og i framen kan du jo f.eks. sætte src="about:blank"
Avatar billede louise_christensen Nybegynder
26. august 2003 - 15:44 #6
det ser meget fornuftigt ud! Jeg når desværre ikke at kigge mere på det lige nu, men vender snart tilbage :)
Avatar billede louise_christensen Nybegynder
26. august 2003 - 22:51 #7
den loader slet ikke nogen forside ind i framesettet. Hverken med eller uden flash? Jeg har tjekket at stien til siderne er rigtig. Hvad kan der være galt? Indexsidens kode ser sådan her ud:

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Kubus WebDev">
        <title>..:: &copy; Louise ::..</title>
        <SCRIPT LANGUAGE=JavaScript1.1>
        function detectFlash(){
var MM_contentVersion = 6;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
        var words = navigator.plugins["Shockwave Flash"].description.split(" ");
        for (var i = 0; i < words.length; ++i)
        {
        if (isNaN(parseInt(words[i])))
        continue;
        var MM_PluginVersion = words[i];
        }
    var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
  && (navigator.appVersion.indexOf("Win") != -1)) {
    document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
    document.write('on error resume next \n');
    document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
    document.write('</SCR' + 'IPT\> \n');
}
if ( MM_FlashCanPlay ) {
    top.frames["indhold"].location.replace("http://www.clouise.dk/pages/frontpage.asp");
} else{
    top.frames["indhold"].location.replace("http://www.clouise.dk/pages/frontpage_uf.asp");
}
}


</SCRIPT>
    </head>

    <frameset rows="*,464,*,0" border="0" framespacing="0" frameborder="no">
<frame src="pages/spacer.html?LangRef=6" name="spacer_L" noresize scrolling="no">

    <frameset cols="*,514,*" border="0" framespacing="0" frameborder="no">
        <frame src="pages/spacer.html?LangRef=6" name="spacer_L" noresize scrolling="no">
            <frame src="about:blank" name="indhold" scrolling="no" noresize>
            <frame src="pages/spacer.html?LangRef=6" name="spacer_R" noresize scrolling="no">
        </frameset>

<frame src="pages/spacer2.html?LangRef=6" name="spacer_R" noresize scrolling="no">
<frame src="pages/loading.html?LangRef=6" name="spacer_R" noresize scrolling="no">
</frameset>

    <noframes>

        <body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="detectFlash()">

    </body>
    </noframes>

</html>
Avatar billede roenving Novice
27. august 2003 - 16:14 #8
Den når jo aldrig frem til den body, som er i noframes-sektionen, så istedet:

    <frameset rows="*,464,*,0" border="0" framespacing="0" frameborder="no" onload="detectFlash()">
<frame src="pages/spacer.html?LangRef=6" name="spacer_L" noresize scrolling="no">

    <frameset cols="*,514,*" border="0" framespacing="0" frameborder="no">
        <frame src="pages/spacer.html?LangRef=6" name="spacer_L" noresize scrolling="no">
            <frame src="about:blank" name="indhold" scrolling="no" noresize>
            <frame src="pages/spacer.html?LangRef=6" name="spacer_R" noresize scrolling="no">
        </frameset>

<frame src="pages/spacer2.html?LangRef=6" name="spacer_R" noresize scrolling="no">
<frame src="pages/loading.html?LangRef=6" name="spacer_R" noresize scrolling="no">
</frameset>

    <noframes>

        <body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

    </body>
    </noframes>
Avatar billede louise_christensen Nybegynder
31. august 2003 - 16:42 #9
Jeg ved ikke hvad der er galt, men den næste side hentes aldrig ind i framesettet...

Jeg har iøvrigt fjernet flash detect scriptet, og lagt det ind på en mellemliggende side imellem forsiden og den første indholdsside. Kan det være linket der er noget galt med?
Avatar billede louise_christensen Nybegynder
31. august 2003 - 16:50 #10
det ser slet ikke ud som om den kører scriptet overhovedet? Den mellemliggende side hentes godt nok ind i framesettet, men det ser slet ikke ud som om scriptet kører? Koden ser sådan ud:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive 6">
        <title>..:: &copy; Louise ::..</title>
        <SCRIPT LANGUAGE=JavaScript1.1>
        function detectFlash() {
var MM_contentVersion = 6;
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
if ( plugin ) {
        var words = navigator.plugins["Shockwave Flash"].description.split(" ");
        for (var i = 0; i < words.length; ++i)
        {
        if (isNaN(parseInt(words[i])))
        continue;
        var MM_PluginVersion = words[i];
        }
    var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
}
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0
  && (navigator.appVersion.indexOf("Win") != -1)) {
    document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
    document.write('on error resume next \n');
    document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n');
    document.write('</SCR' + 'IPT\> \n');
   
}
if ( MM_FlashCanPlay ) {
    top.frames["indhold"].location.replace("localhost/websitetest_m_flashdetect/clouise/pages/content.asp");
} else{
    top.frames["indhold"].location.replace("localhost/websitetest_m_flashdetect/clouise/pages/content_uf.asp");
}



</SCRIPT>
    </head>

    <body background="../images/background_flashdetect.gif" bgcolor="#ffffff" onload="detectFlash()">
        <p></p>
    </body>

</html>
Avatar billede roenving Novice
01. september 2003 - 02:26 #11
Det ser ud til at der skal noget 'langsom' debugging til ...

Prøv først at indsætte en alert(MM_contentVersion); lige efter linjen hvor den erklæres ...

Den skulle gerne irritere med at sige 6 -- men så ved vi den fungerer !-)
Avatar billede louise_christensen Nybegynder
04. september 2003 - 19:06 #12
nej der sker slet ingenting...?
Avatar billede roenving Novice
05. september 2003 - 04:37 #13
Har du måske en menu, som også loades ?-)
Avatar billede louise_christensen Nybegynder
05. september 2003 - 09:30 #14
tja den henter en side ind, som indeholder en menu, hvis det er det du mener?

siden som indeholder detect scriptet, er tom, bortset fra et stykke baggrundsgrafik...
Avatar billede roenving Novice
06. september 2003 - 04:19 #15
Så er der måske en konflikt mellem flere onload-scripts ...
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
Kurser inden for grundlæggende programmering

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