Вопрос по javascript, jquery, html – объект, парам, jquery

4
<object width="438" height="280" id="pano" >
    <param value="url_flash" name="movie" />
    <param value="false" name="menu"/>
    <param value="high" name="quality"/>
    <param value="#FFFFFF" name="bgcolor"/>
    <embed width="438" height="280" pluginpage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="pano" bgcolor="#FFFFFF" quality="high" menu="false" src="url_flash"/>
</object>

У меня есть этот флэш-код, что я хочу, чтобы при нажатии некоторых кнопок, чтобы изменить с помощью jquery<embed src=''> (для firefox) и первый<param> (для IE)

Как я могу это сделать?

Это работает для встраивания, но как я могу сделать для параметра в IE?

$('.link a').click(function() {

    var urlconst = 'changed_url';

    $(".flash_photo embed").attr({
        src: changed_url          
    });

Я старался

$('#pano param:first').val(changed_url)  

Но это не работает.

Ваш Ответ

5   ответов
0

$('#pano param:first').val(urlconst)
5

что вы не можете динамически изменять атрибуты элемента param. Вероятно, самым простым способом будет перетянуть HTML-элемент в переменную, передать его обратно в jQuery и использовать для этого CSS-селекторы. Затем вы можете очистить объект и заменить его новым кодом.

var url = (url here);
var code = $("#embedded").html();
var newcode = $("param:first", code).attr("src", url).html();
$("#embedded").html(newcode);

или что-то типа того... ;

0

У меня есть такое решение:

var flashhtml = $("object").html();
$('object').before("<div id='mydiv'>... div</div>");
$('object').remove();
var flashattr = 'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="583" height="297">';
$('#mydiv').html('<object ' + flashattr + '<param name="wmode" value="transparent">' + flashhtml + '</object>');
4

Поведение, которое я описал ниже, имеет место только в IE в определенных ситуациях. Когда элемент объекта присутствовал в загруженном DOM, я мог обновить значение элемента param с именем movie, но состояние объекта не изменилось. И объект не может быть легко обновлен, насколько я знаю. Похоже, лучший способ - удалить элемент объекта и добавить новый. Для этого кажется, что плагин SWFObject jQuery, который предлагает SolutionYogi, или что-то подобное, действительно может быть лучшим способом.

ОРИГИНАЛ

Из того, что я вижу, когда я пробую это в IE8, IE сохраняет только элементы встраивания при загрузке страницы, а не элементы object и param. Таким образом, вы не можете изменить это значение параметра, потому что он больше не существует.

Так что, если это будет подано:

<object width="425" height="344">
    <param name="movie" 
        value="http://www.youtube.com/v/ePXlkqkFH6s&hl=en&fs=1&"></param>
    <param name="allowFullScreen" value="true"></param>
    <param name="allowscriptaccess" value="always"></param>
    <embed src="http://www.youtube.com/v/ePXlkqkFH6s&hl=en&fs=1&" 
        type="application/x-shockwave-flash"
        allowscriptaccess="always" 
        allowfullscreen="true" 
        width="425" height="344"></embed>
</object>

Это становится только этим в IE DOM:

<embed src="http://www.youtube.com/v/ePXlkqkFH6s&hl=en&fs=1&" 
    type="application/x-shockwave-flash"
    allowscriptaccess="always" 
    allowfullscreen="true" 
    width="425" height="344"></embed>

Чтобы получить фильм для обновления в IE, мне пришлось заставить IE анализировать HTML для встраивания. Следующее, похоже, сработало:

var placeHolder = $("<div />");
var tempParent = $("<div />");
var embed = $("#movieparent embed");
embed.replaceWith(placeHolder);
tempParent.append(embed);
embed.attr("src", newSrcUrl);
placeHolder.replaceWith(tempParent.html());
Это хорошо. Я также пошел «наверх» к элементу объекта, чтобы заменить параметр фильма, а также встроенный источник. goodeye
7
спасибо, я использую этот плагин AlexC
У меня есть вспышка, мне нужно только изменить параметры, когда я нажимаю на ссылку, которую можно изменить для встраивания, но для «параметра» у меня есть некоторые проблемы AlexC

Похожие вопросы