0

ヘッドセクションに2つのJavaScriptがあります。次に、embedSWF関数を最初のスクリプト内に配置します。私だけがどこにいるのかわからない..

        <!-- JQUERY Functions -->
    <script type="text/javascript"> 
        jQuery.noConflict();
        jQuery(document).ready(function() {
            // alert('DOM ready');
        });
        window.onload = function() {
            // alert('page completely loaded');
        }
    </script>

    <!-- write SWF -->
    <script type="text/javascript">
        function outputStatus(e) {
            if (!e.success) { // alert('NO flash, alternative content'); 
            } 
            else { // alert('flash embedded successfully'); 
            }
        }
        var flashvars = {};
        var params = {}
        swfobject.embedSWF("test.swf", "album-wrap", "930", "530", "9.0.0", "js/expressInstall.swf", flashvars, params, null, outputStatus); 
    </script>
4

1 に答える 1

0

すべてのスクリプトを からheadページの下部、</body>. cssjavascript をロードするとimage、 や など、js コードよりも必要な他のページ要素の同時ロードがブロックされるため、これによりページのロードが改善されます。

コードを配置するにswfobjectは、jQuery DOM Ready ブロック内に配置する方が安全です。

function outputStatus(e) {
  if (!e.success) {
    // alert('NO flash, alternative content'); 
  } 
  else {
    // alert('flash embedded successfully'); 
  }
}

jQuery(function($) {
  // alert('DOM ready');
  var flashvars = {};
  var params = {}
  swfobject.embedSWF("test.swf", "album-wrap", "930", "530", "9.0.0", "js/expressInstall.swf", flashvars, params, null, outputStatus);
});

これにより、swfobject必要なすべての DOM がロードされた後に実行されることが保証されます。ブロックの外で実行すると、必要な DOM 要素がページにロードされるのを待っている間に実行される可能性があり、予期しない結果が生じる可能性があります。

于 2010-02-02T02:01:58.137 に答える