Results 1 to 3 of 3

Thread: External Javascript for Flash Detection Code

  1. #1
    Join Date
    Jul 2008
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default External Javascript for Flash Detection Code

    I know how to do a basic external Javascript (and don't know much about Javascript) but can't work out how to do it for the Flash Detection Code - I presume all the coding in the head for it goes into a txt file saved as external.js and then the following replaces it

    Code:
    <SCRIPT language="JavaScript" SRC="external.js"></SCRIPT>
    But what about the code in the body - I presume this stays in the body but how do I point that code to the external.js (I have 2 flash files in the one page as well but will have the same flash detection coding) ie

    Code:
    <script language="JavaScript" type="text/javascript">
    <!-- 
    var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
    if(hasRightVersion) {  // if we've detected an acceptable version
        var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
        + 'width="742" height="121"'
        + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
        + '<param name="movie" value="perthsky.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#333333" />'
        + '<embed src="perthsky.swf" quality="high" bgcolor="#333333" '
        + 'width="742" height="121" name="perthsky" align="middle"'
        + 'play="true"'
        + 'loop="false"'
        + 'quality="high"'
        + 'allowScriptAccess="sameDomain"'
        + 'type="application/x-shockwave-flash"'
        + 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
        + '<\/embed>'
        + '<\/object>';
        document.write(oeTags);   // embed the flash movie
      } else {  // flash is too old or we can't detect the plugin
        var alternateContent = '<img src="perthcitypano2.jpg" />';
        document.write(alternateContent);  // insert non-flash content
      }
    // -->
    </script>
    Thanks
    Last edited by jscheuer1; 07-27-2008 at 12:21 PM. Reason: add code tags

  2. #2
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    The language attribute has been deprecated and the type attribute is required. So use:

    Code:
    <script type="text/javascript" src="external.js"></script>
    But why name it external.js? I'd call it flash_detect.js - but you may name it anything you like.

    For the same reasons mentioned above, the body code should open like:

    Code:
    <script type="text/javascript">
    <!-- 
    var hasRightVersion = DetectFl . . .
    You don't need to do anything to get the body code to access the external script. As long as that external file is a valid script file, all other scripts on the page may reference it.

    Here are my pointers for external scripts:

    Use a text editor to save the script, call it 'file_name.js' where 'file_name' can be any valid file name of your choosing. Substitute the name of your external .js file for some.js in the below:

    HTML Code:
    <script src="some.js" type="text/javascript"></script>
    Common problems arise when:

    1 ) The script file is not in the directory specified. In the above example it must be in the same directory as the page(s) that use it. Below, it can be in the scripts directory off of the root of a domain:

    HTML Code:
    <script src="http://www.somedomain.com/scripts/some.js" type="text/javascript"></script>
    2 ) Opening, closing and/or 'hiding' tags are left in the external file. This means that you must strip:
    Code:
    <script>
    <!--
    and
    Code:
    //-->
    </script>
    and any of their many variations from the beginning and end of the external file.

    3 ) The external call (<script src="some.js" type="text/javascript"></script>) is not inserted into the page at the correct spot. The external call must be inserted at the same place on the page where the script was/would have been.

    4 ) Paths to other files (if) used by the script are no longer valid due to its location. This is only a problem if the external script is kept in a different directory than the page it was working on when it was an internal script. To correct this, use absolute paths inside the script. Absolute path examples:

    Code:
    http://www.somedomain.com/images/button.gif
    
    http://www.somedomain.com/~mysitename/index.html
    5 ) Inappropriately combining two or more scripts into one external file. Usually external scripts can be combined if one knows enough about scripting to do so properly. Even then it is possible to overlook something.

    A rule of thumb when testing is, if it won't work on the page, it won't work as an external file either.

    One other thing, if this is a DD script or any script that requires the credit remain for legal use, include the credit in the on page call, ex:

    HTML Code:
    <script src="some.js" type="text/javascript">
    /***********************************************
    * IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
    * Visit DynamicDrive.com for hundreds of original DHTML scripts
    * This notice must stay intact for legal use
    ***********************************************/
    </script>
    Make sure to retain all the 'decorations', as these include begin and end javascript comment delimiters, without which the script won't function.

    There is also info here:

    http://www.javascriptkit.com/javatutors/external.shtml
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  3. #3
    Join Date
    Jul 2008
    Posts
    5
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Thanks - it now works perfectly!

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •