См .: http://qwer.se/stack/trailer/
Отлично работает в FF, C & SF, но не в IE.Не могу найти ошибку.
IE говорит: «undefined» является нулем или не объектом »
Это скрипт:
<script>
$(document).ready(function(){
// open popup when image is clicked
$('img').click(function(){
var $movieObj = $(".tdt object"); // Cache jQuery object
var imgID = $(this).attr("alt"),
movieVal = $("param[name=movie]", $movieObj).val(),
embedSrc = $("embed", $movieObj).attr("src");
$movieObj
.find("param[name=movie]").val(movieVal.replace(/MY-ID-NUMBER/, imgID)).end()
.find("embed", $movieObj).attr("src", embedSrc.replace(/MY-ID-NUMBER/, imgID)).end();
$(".tdb").show();
});
// close popup + restor value to default
$('.tdb').click(function(){
var default1 = "http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/MY-ID-NUMBER/4601100213-1/";
var default2 = "http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/MY-ID-NUMBER/4601100213-1/&display_title=over&menu=true&enable_link=true&default_quality=xxlarge&controlbar=over&autostart=true&backcolor=000000&frontcolor=ffffff&share=0&repeat=always&displayclick=play&volume=80&linktarget=_blank";
var $movieObj = $(".tdt object"); // Cache jQuery object
var imgID = $(this).attr("alt"),
movieVal = $("param[name=movie]", $movieObj).val(),
embedSrc = $("embed", $movieObj).attr("src");
$(".tdt object").find("param[name=movie]").val(default1);
$(".tdt object").find("embed", $movieObj).attr("src", default2);
$(".tdb").hide();
});
});
</script>
Я добавил ID в «param» и «embed», а также изменил скрипт на это сейчас.Но это все еще не работает в IE.
// open popup when image is clicked
$('img').click(function(){
var $movieObj = $(".tdt object"); // Cache jQuery object
var imgID = $(this).attr("alt"),
movieVal = $('#testing').val(),
embedSrc = $('#player').attr("src");
$movieObj
.find('#testing').val(movieVal.replace(/MY-ID-NUMBER/, imgID)).end()
.find('#player').attr("src", embedSrc.replace(/MY-ID-NUMBER/, imgID)).end();
$(".tdb").show();
});
// close popup when background is clicked + restor value to default
$('.tdb').click(function(){
var default1 = "http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/MY-ID-NUMBER/4601100213-1/";
var default2 = "http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/MY-ID-NUMBER/4601100213-1/&display_title=over&menu=true&enable_link=true&default_quality=xxlarge&controlbar=over&autostart=true&backcolor=000000&frontcolor=ffffff&share=0&repeat=always&displayclick=play&volume=80&linktarget=_blank";
var $movieObj = $(".tdt object"); // Cache jQuery object
var imgID = $(this).attr("alt"),
movieVal = $('#testing').val(),
embedSrc = $('#player').attr("src");
$movieObj
.find('#testing').val(default1).end()
.find('#player').attr("src", default2).end();
$(".tdb").hide();
});
Вот как я это подставил (может быть, это не было бы честно, но это работает):
$('img').click(function(){
var default1 = '<object class="tot" width="960" height="540"><param id="testa" name="movie" value="http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/';
var default2 = $(this).attr("alt");
var default3 = '/4601100213-1/><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed id="player" name="player" type="application/x-shockwave-flash" src="http://www.player.filmtrailer.com/v3.4/player.swf?file=http://se.player-feed.previewnetworks.com/cinema/';
var default4 = '/4601100213-1/&display_title=over&menu=true&enable_link=true&default_quality=xxlarge&controlbar=over&autostart=true&backcolor=000000&frontcolor=ffffff&share=0&repeat=always&displayclick=play&volume=80&linktarget=_blank" width="960" height="540"allowFullScreen="true" allowScriptAccess="always"></embed></object>';
$('.tdt').html(default1 + default2 + default3 + default2 + default4);
$(".tdb").show();
});
$('.tdb').click(function(){
$('.tdt').html('');
$(".tdb").hide();
});