所以我有这个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 ......提前谢谢。
答案 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>