JavaScript не работает в Chrome / Opera / IE, но Firefox отлично! - PullRequest
0 голосов
/ 30 июня 2010

У меня есть этот код, работающий только в 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>

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

Ответы [ 4 ]

6 голосов
/ 30 июня 2010

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

Этот вопрос, кажется, дает решение: Динамическое изменение встроенного src видео в IE / Chrome (работает в Firefox)

3 голосов
/ 30 июня 2010

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

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

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

2 голосов
/ 30 июня 2010

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

1 голос
/ 30 июня 2010

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

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&";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...