2011-08-28 73 views
0

好吧,我有這樣的代碼在Javascript問題:的javascript:相結合的功能,如果

function fullWin() { 
    if (document.getElementById('embed').src = 'vid1.mov') { 
     window.open('vid1.html'); 
    } 
    else if (document.getElementById('embed').src = 'vid2.mov') { 
     window.open('vid2.html'); 
    } 
} 

我的問題是,當嵌入源等於就是vid2.mov,源變爲vid1.mov和vid1.html打開。我想如果嵌入源等於vid2.mov,vid2.html打開並viseversa。對於那些想知道html代碼的人。

<object height="100%" width="100%"> 
    <embed id="embed" target="_top" src="Amelie.m4v" autostart="false" height="100%" width="100%" scale="tofit"></embed> 
</object> 
<div id="div8" onClick="fullWin()">Fullscreen</div> 
+0

這是甚麼工作?在JavaScript中,通過==(或更好===)檢查邏輯相等性。這是一個錯字嗎?如果不是,請先嚐試一下。 – dbozhinovski

+0

下一次,只需插入您的代碼,將其標記並單擊「{}」按鈕。另請參閱[編輯幫助](http://stackoverflow.com/editing-help)或問題文本框旁邊的橙色框。 –

+0

@Seiryuu:基本上這是錯誤。 – Dolphin

回答

3

您需要使用兩個=符號而不只是一個。或者更好的是使用三個===。 More on comparison operators

  • 一個等號是分配,var a = 1;
  • 二是類型轉換等同,'0' == 0; // true, because '0' is converted to a number
  • 三是嚴格比較,'0' === 0; // false, because one is a string and one is a number
+0

@Victor:您可以通過點擊旁邊的綠色複選標記來接受答案。這有助於組織堆棧溢出並將您的問題從未應答的隊列中移除。 – hugomg

+0

即使修復比較運算符也不會使其在每個博文的帖子下面工作。 – jfriend00

1

如果(的document.getElementById('嵌入').src ='vid1.mov')

即使正確使用比較運算符(=====),這也不起作用。 <emed>元素的src屬性返回解析後的絕對URL,例如http://www.example.com/vid1.mov,而不是確切的原始屬性值。

您可以使用getAttribute('src')來獲取文字屬性值,但IE瀏覽器無法正常工作; getAttributeNode('src').value是一種變通方法有,或者嘗試.endsWith('vid1.mov'),或者類似的東西:

window.open(document.getElementById('embed').src.replace('.mov', '.html'); 

我建議使用HTML5視頻和Flash回退,這些天; <embed>有些過時並且有問題。