-3

だから私はこのjavascript/jqueryを持ってswfファイルを表示する前に遅延を作りますが、それは機能していません、私が機能していないと言うとき、私はそれが何もしないことを意味します...

スクリプトは次のとおりです。

        <script src="http://code.jquery.com/jquery-1.8.0.min.js" ></script>
        <link href="http://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" type="text/css" >

<script>
function Func1()
{
$('#stage').html("<OBJECT style="z-index:2; position:absolute; top:20%; left:44%;" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="320" HEIGHT="240" id="rice" ALIGN="">
<PARAM NAME=movie VALUE="rice.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#333399> <EMBED src="rice.swf" quality=high bgcolor=#333399 WIDTH="320" HEIGHT="240" NAME="rice" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> </OBJECT>");
}

function Func1Delay()
{
setTimeout("Func1()", 10000);
}

</script>

これが私が関数を呼び出す方法です:

<body onload="Func1Delay()" >

絶対に何もしていないようです...よろしくお願いします。

4

4 に答える 4

7

オブジェクトタグでをエスケープする必要が"あります。エスケープしないと、構文エラーが発生します

$('#stage').html("<OBJECT style=\"z-index:2; position:absolute; top:20%; left:44%;\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" WIDTH=\"320\" HEIGHT=\"240\" id=\"rice\" ALIGN=\"\">
<PARAM NAME=movie VALUE=\"rice.swf\"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#333399> <EMBED src=\"rice.swf\" quality=high bgcolor=#333399 WIDTH=\"320\" HEIGHT=\"240\" NAME=\"rice\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\"></EMBED> </OBJECT>");

また、MDNによると、setTimeoutのコード文字列を使用することはお勧めしません。setTimeout(Func1, 10000);代わりに使用してください。

于 2012-08-15T19:32:57.310 に答える
1

onload属性は、特にjQueryを使用している場合に、実行時にJavaScriptを実行するための非常に古いメソッドです。

$().ready({ function(){
    // set you timeout here
});

また、JavaScriptにはエラーがたくさんあります。埋め込みようとしているHTMLの引用符をエスケープする必要があります。現在のように文字列の間にテキストが浮かんでいるので、間違いなくいくつかの構文エラーが発生します。

$('#stage').html("<OBJECT style=\"z-index:2; position:absolute; top:20%; left:44%;\" // and so on.

さらに、setTimeoutの構文もコードで間違っていると思います。 https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

于 2012-08-15T19:34:48.260 に答える
0

変化する:

setTimeout("Func1()", 10000);

に:

setTimeout(Func1, 10000);
于 2012-08-15T19:31:34.650 に答える
0

スクリプトタグに「タイプ」があり、HTMLコードに一重引用符を使用していることを確認してください。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js" ></script>
<link href="http://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" type="text/css" >
<script type="text/javascript">
    // Do 'onload' here:
    $(document).ready(function() {
        Func1Delay();
    });

    function Func1() {
        $('#stage').html('<OBJECT style="z-index:2; position:absolute; top:20%; left:44%;" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="320" HEIGHT="240" id="rice" ALIGN=""><PARAM NAME=movie VALUE="rice.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#333399> <EMBED src="rice.swf" quality=high bgcolor=#333399 WIDTH="320" HEIGHT="240" NAME="rice" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED> </OBJECT>');
    }

    function Func1Delay() {
        setTimeout(Func1, 10000);
    }
</script>
于 2012-08-15T19:38:56.113 に答える