2012-08-15 139 views
-3

所以我有這個JavaScript/jQuery的顯示SWF文件之前進行延遲,但它不工作,當我說沒有工作,我的意思是什麼都不做......爲什麼我的jquery/javascript不工作?

下面是腳本:

 <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

你的雙引號都是不匹配的。另外,''Func1()「'應該是'Func1' – 2012-08-15 19:32:55

+1

將第一個和最後一個」inside「html(」「)'改爲' - 你正在用'style =」' – Archer 2012-08-15 19:32:59

+0

關閉字符串你是否嘗試過其他的C/P [這個答案](http://stackoverflow.com/questions/11974724/show-image-then-swf)? – nickb 2012-08-15 19:33:07

回答

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

甚至更​​好,使用單引號括住'.html'函數中的字符串而不是雙引號。 – 2012-08-15 19:34:09

+0

也可以在腳本標籤中輸入'type':

0

變化:

setTimeout("Func1()", 10000); 

到:

setTimeout(Func1, 10000); 
+1

真的嗎?刪除引號,然後是的,好吧。它仍然會按照他原來的方式工作。 – Archer 2012-08-15 19:32:27

+0

這對我來說似乎是錯誤的。 – 2012-08-15 19:32:34

+2

cmon傢伙顯然是一個錯字。 – 2012-08-15 19:35:08

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

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>