2011-08-28 5 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. Я хочу, чтобы, если источник embed равен 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

Даже исправление оператора сравнения не заставляет его работать на сообщение bobince ниже. – jfriend00

1

если (document.getElementById ('встраивать ') .src =' vid1.mov ')

Это не сработает даже при правильном использовании оператора сравнения (== или ===). Свойство src элемента <emed> возвращает разрешенный абсолютный URL-адрес, такой как http://www.example.com/vid1.mov, а не точное значение оригинального атрибута.

Вы можете использовать getAttribute('src'), чтобы получить значение атрибута literal, за исключением того, что IE не работает; getAttributeNode('src').value обходной путь там, или же попробовать .endsWith('vid1.mov'), или что-то вроде:

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

Я предлагаю использовать HTML5 видео с флэш-Откат в эти дни; <embed> несколько старомодный и проблемный.

Смежные вопросы