为什么我的jquery / javascript无法正常工作?

时间:2012-08-15 19:29:14

标签: php javascript jquery html

所以我有这个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()" >

似乎没有做absolutley ......提前谢谢。

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

onload属性是一种在运行时执行JavaScript的极其过时的方法,尤其是在使用jQuery时。

$().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

答案 2 :(得分:0)

变化:

setTimeout("Func1()", 10000);

为:

setTimeout(Func1, 10000);

答案 3 :(得分: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>