javascript:组合函数和if的问题

时间:2011-08-28 22:35:36

标签: javascript html function if-statement embed

好的,我在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');
    }
}

我的问题是,当embed source等于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>

2 个答案:

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

答案 1 :(得分:1)

  

if(document.getElementById('embed')。src ='vid1.mov')

即使正确使用比较运算符(=====),这也无效。 src元素的<emed>属性返回已解析的绝对网址,例如http://www.example.com/vid1.mov,而不是确切的原始属性值。

您可以使用getAttribute('src')获取文字属性值,但不适用于IE; getAttributeNode('src').value是一种解决方法,或者尝试.endsWith('vid1.mov'),或类似:

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

我建议最近使用带有Flash后备的HTML5视频; <embed>有些老套且有问题。