2011-09-25 48 views
0

道歉爲這個問題的奇怪格式。我最近問了一些類似的問題,但仍然無所適從。我真的不知道大部分工作是如何進行的,我一直試圖在W3Schools.com這些地方學習各種教程等,並且在這裏的人們的幫助下,儘管我沒有完全理解,但我認爲我快到了。使用inner.html

我想要做的只是播放一段視頻,如果這是第一次訪問者到達網站(但有點特別 - 它是透明的,需要浮在頁面上)。

下面的代碼正確地設置一個cookie,如果不存在,並檢查它的用戶訪問該網站。我有一個問題,該位是該行的啓動語法:

document.getElementById('video').innerHTML = 

如果我評論說,線路輸出,所有其他的餅乾的東西正常工作,所以我希望有人可以提供幫助。該火狐錯誤控制檯給人的錯誤是:XML源意外結束並checkCookie沒有定義

我也試過圍繞着一大堆扔引用,但它並沒有真正的區別。

下面是代碼,並感謝大家提前。搶。

<div id="video" style="position:absolute;top:125px;left:-67px;z-index:10000000"> </div> 
<script src="AC_RunActiveContent.js" type="text/javascript"> </script> 

<script type="text/javascript"> 
function getCookie(c_name) 
{ 
    var i,x,y,ARRcookies=document.cookie.split(";"); 

    for (i=0;i<ARRcookies.length;i++) 
    { 
    x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
    y = ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
    x = x.replace(/^\s+|\s+$/g,""); 

    if (x==c_name) 
    { 
     return unescape(y); 
    } 
    } 
} 

function setCookie(c_name,value,exdays) 
{ 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
} 

function checkCookie() 
{ 
    var username=getCookie("username"); 

    if (username!=null && username!="") 
    { 
    alert("Welcome again " + username); 
    } 
    else 
    { 
    username=prompt("Please enter your name:",""); 

    if (username!=null && username!="") 
    { 
     setCookie("username",username,7); 
     document.getElementById('video').innerHTML = <script type="text/javascript"> AC_FL_RunContent ('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','320','height','220','id','HTIFLVPlayer','src','HTIFLVPlayer','flashvars','&MM_ComponentVersion=1&skinName=HTI_Skin&streamName=nigel&autoPlay=true&autoRewind=true','quality','high','scale','noscale','name','HTIFLVPlayer','salign','lt','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','HTIFLVPlayer')</script>; 
    } 
    } 
} 
</script> 
<body onload="checkCookie()"> 
</body> 
+0

你肯定缺少引號。那是開始的地方。 –

回答

1

難道你錯過了幾個引號嗎?

document.getElementById('video').innerHTML = <script type="text/javascript"> AC_FL_RunContent ('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','320','height','220','id','HTIFLVPlayer','src','HTIFLVPlayer','flashvars','&MM_ComponentVersion=1&skinName=HTI_Skin&streamName=nigel&autoPlay=true&autoRewind=true','quality','high','scale','noscale','name','HTIFLVPlayer','salign','lt','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','HTIFLVPlayer')</script>; 

vs 

document.getElementById('video').innerHTML = "<script type='text/javascript'> AC_FL_RunContent ('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','320','height','220','id','HTIFLVPlayer','src','HTIFLVPlayer','flashvars','&MM_ComponentVersion=1&skinName=HTI_Skin&streamName=nigel&autoPlay=true&autoRewind=true','quality','high','scale','noscale','name','HTIFLVPlayer','salign','lt','pluginspage','http://www.macromedia.com/go/getflashplayer','wmode','transparent','movie','HTIFLVPlayer')</script>"; 
1

幾件事情,可能會或可能不會導致你答案:

檢查從的getElementById返回值不爲空,嘗試使用它,比如前:

var el = document.getElementById('video') 
if (el) { 
    el.innerHTML = ... 
} 

將腳本元素設置爲元素的innerHTML將不會執行腳本。

要做到這一點,最好的辦法是把腳本到一個單獨的文件,並使用腳本元素的src屬性加載它,例如

var script = document.createElement('script'); 
script.src = 'videoScript.js'; // or whatever you call the script file 
el.appendChild(script); 

或者,您可以設置腳本作爲腳本元素的.text屬性,但不會在某些瀏覽器工作:

script.text = '...'; 
el.appendChild(script); 
+0

感謝羅布。使用上面的解決方案,在控制檯中至少不會出現錯誤,但正如您所建議的那樣,它並不實際執行腳本。我明白你說的把腳本放到一個單獨的js文件中,但是(不理解)不明白如何在文件中制定腳本 - 任何你可以爲我闡述的機會。很多人很感謝,Rob。 –

+0

保存在一個純文本文件的腳本,給它一個.js擴展(只是讓生活更輕鬆),把它的地方在那裏你保持這樣的資源在服務器上,它的URI成爲腳本的* SRC *屬性。 – RobG

+0

Hi Rob,再次感謝。我已經完成了你的建議(我認爲),但是在錯誤控制檯中,它現在說「從異步加載的外部腳本調用document.write()被忽略(並且它不播放視頻)。任何建議greatfully收到!謝謝,羅布。 –