2010-06-30 4 views
0

У меня есть этот код, работающий только в firefox.javascript не работает в chrome/opera/IE, но firefox отлично!

<script type="text/javascript"> 
    function setVideo(url){ 
     url = url.replace("watch?v=","v/","i"); 
     var movie = document.getElementById('movie'); 
     movie.setAttribute('src',url+"&hl=en&fs=1&"); 
     var param = document.getElementById('paramm'); 
     param.setAttribute('value',url+"&hl=en&fs=1&"); 
    } 
</script> 

<object width="425" height="344"> 
      <param name="movie" id="paramm"></param> 
      <param name="allowFullScreen" value="true"></param> 
      <param name="allowscriptaccess" value="always"></param> 
      <embed id="movie" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344" src=""></embed> 
     </object> 

<a href="#" onclick="setVideo('http://www.youtube.com/watch?v=3h1qQaRxY40')">example</a> 

ПОЖАЛУЙСТА, помогите, я понятия не имею, это такой простой скрипт, почему он не работает? thanks

+1

Что должен делать этот код? Что не работает? Какие сообщения об ошибках вы получаете? –

ответ

6

Вы пытаетесь динамически изменять источник видео в элементе embed. Это, как известно, сложно и на самом деле нуждается в обходном пути для браузеров, отличных от Firefox.

Этот вопрос, кажется, обеспечивает решение: Dynamically change embedded video src in IE/Chrome (works in Firefox)

3

Вы не предоставили никаких сообщений об ошибках, так что трудно сказать, что должно быть исправлено ...

Одна вещь, которую я заметил, что вы используете нестандартный синтаксис для метода «replace».

См https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/replace для объяснения и альтернатив

+0

... или посмотрите [Спецификация ECMAScript для String.replace] (http://ecma262-5.com/ELS5_Section_15.htm#Section_15.5.4.11), на которой основаны все механизмы JavaScript. –

+0

Прошу прощения, в других браузерах, кроме firefox, видео пусто. Нет видео – Adriana

2

Вы должны, вероятно, использовать что-то вроде SWFObject (http://code.google.com/p/swfobject) встраивать ВЕСЬ вспышки объект, когда функция setVideo называется - не просто изменить URL. IE и хром, вероятно, не распознают изменения.

1

Не используйте setAttribute со значением. Известно, что cause problems.

function setVideo(url){ 
    url = url.replace("watch?v=","v/"; 
    var movie = document.getElementById('movie'); 
    movie.src = url+"&hl=en&fs=1&"; 
    var param = document.getElementById('paramm'); 
    param.value = url+"&hl=en&fs=1&"; 
} 
Смежные вопросы