Jquery. Load не загружается JavaScript или Flash - PullRequest
0 голосов
/ 23 августа 2011

Я пытаюсь загрузить страницу "/ test / 2" с помощью Jquery в div на главной странице. У меня установлено 2 версии, одна с использованием iframes, а другая с помощью функции загрузки jQuery. Когда я использую функцию загрузки ajax, часть страницы YouTube (которую я загружаю с помощью java-скрипта) отображает «Вам нужен Flash player 8+ и JavaScript включен для просмотра этого видео». ; тем не мение. когда я использую iFrames, он загружается отлично.

Вот код, который я использую для загрузки страницы (используя jquery):

<script> $(document).ready(function(){
$('#theList li a').click(function(){
    $('#containerDiv').load($(this).attr('href'));
    return false; 
}); }); </script>

Вот код, который я использую для загрузки YouTube на странице "/ test / 2", которая прямо из документации API YouTube.

<div id="ytapiplayer"> 
  You need Flash player 8+ and JavaScript enabled to view this video.
</div> 
<script type="text/javascript"> 
      // <![CDATA[

      // allowScriptAccess must be set to allow the Javascript from one 
      // domain to access the swf on the youtube domain
      var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };
      // this sets the id of the object or embed tag to 'myytplayer'.
      // You then use this id to access the swf and make calls to the player's API
      var atts = { id: "myytplayer" };
      swfobject.embedSWF("http://www.youtube.com/v/{{video.video_id}}?border=0&amp;autoplay=1;controls=0;hd=1;enablejsapi=1&amp;playerapiid=ytplayer",
                         "ytapiplayer", "680", "380", "8", null, null, params, atts);
      //]]>
    </script> 

Странно то, что он прекрасно работает с обычным встраиванием YouTube и с фреймами, но не с функцией загрузки jQuery. Могу ли я добавить, что я относительно новичок в jQuery, так что может быть проблема с моей функцией загрузки, о которой я не знаю.

РЕДАКТИРОВАТЬ: это то, что, кажется, вызывает проблему (т.е. я получаю Uncaught ReferenceError: Google не определен). В файле, который я пытаюсь загрузить, у меня есть:

<script src="//www.google.com/jsapi"></script> 
<script> google.load("swfobject", "2.1"); </script> 

Что необходимо для создания объекта YouTube. Все еще не знает, почему он не загружается.

Ответы [ 2 ]

0 голосов
/ 23 августа 2011

Еще один способ сделать это - использовать get() вместо load() и создать контент в обратном вызове success. В этом примере сервер просто возвращает идентификатор видео, а не div и скрипт:

$(document).ready(function() {
    $('#theList li a').click(function() {
        event.preventDefault();
        $.get($(this).attr('href'), { }, function(data) {
            $('#containerDiv').append('<div id="ytapiplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div>');
            var atts = { id: "myytplayer" };
            swfobject.embedSWF("http://www.youtube.com/v/" + data + "?border=0&amp;autoplay=1;controls=0;hd=1;enablejsapi=1&amp;playerapiid=ytplayer",
                     "ytapiplayer", "680", "380", "8", null, null, params, atts);
        });
    });
});
0 голосов
/ 23 августа 2011

Функция загрузки jQuery удалит теги скрипта ..

см. Этот связанный вопрос SO jquery load () удаляет теги скрипта - обходной путь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...