Jquery: вызвать встроенный объект, нажав кнопку Div? - PullRequest
1 голос
/ 24 сентября 2010

Я пытаюсь вызвать щелчок встроенного объекта, щелкнув другой элемент div,

. Это код, который я пробовал:

$('.action-upload').livequery(function()
{
 $(this).click(function()
 {
     $('#button').trigger('click');

 });

}); 

. Этот код подходит для встроенногообъект в firebug:

<object width="114" height="29" class="swfupload" data="js/swfupload/swfupload.swf?preventswfcaching=1285336584999" type="application/x-shockwave-flash" id="SWFUpload_0">(parameters)</object>

это то, на что похож код в моем HTML-документе

<input type="button" id="button" />

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

Я использовал код на обычной кнопке ввода, которая работает, но когда я применяю его к этому, онНеужели

у кого-нибудь есть идеи, как мне это сделать?

(div для действий с загрузкой - просто обычный div с изображением bg)

спасибо за ваше время;)

отредактировано для получения дополнительной информации:

вот сценарий, который я использую в HTML

$('.action-upload').live(function()
{
    $(this).click(function()
    {
        $('#button').trigger('click');
    });         
});

вот HTML:

<div class="action-upload">(bg image)</div>

<div id="swfupload-control">

<input type="button" id="button" />

    <ul id="log"></ul>

</div>

и это то, что заменяет кнопку формы в браузере (получено от firebug)

<object width="114" height="29" class="swfupload" data="js/swfupload/swfupload.swf?preventswfcaching=1285348248401" type="application/x-shockwave-flash" id="SWFUpload_0"><param value="window" name="wmode"><param value="js/swfupload/swfupload.swf?preventswfcaching=1285348248401" name="movie"><param value="high" name="quality"><param value="false" name="menu"><param value="always" name="allowScriptAccess"><param value="movieName=SWFUpload_0&amp;uploadURL=%2Fupload-file.php&amp;useQueryString=false&amp;requeueOnError=false&amp;httpSuccess=&amp;assumeSuccessTimeout=0&amp;params=&amp;filePostName=uploadfile&amp;fileTypes=*.jpg%3B*.png%3B*.gif%3B*.pdf%3B*.html%3B*.ai%3B&amp;fileTypesDescription=Image%20files&amp;fileSizeLimit=5000&amp;fileUploadLimit=10&amp;fileQueueLimit=0&amp;debugEnabled=false&amp;buttonImageURL=%2Fjs%2Fswfupload%2Fwdp_buttons_upload_114x29.png&amp;buttonWidth=114&amp;buttonHeight=29&amp;buttonText=&amp;buttonTextTopPadding=0&amp;buttonTextLeftPadding=0&amp;buttonTextStyle=color%3A%20%23000000%3B%20font-size%3A%2016pt%3B&amp;buttonAction=-110&amp;buttonDisabled=false&amp;buttonCursor=-1" name="flashvars"></object>

Я использую swfupload и пытаюсь вызвать "щелчок" внедренного объекта в файле Actions-upload Div

1 Ответ

2 голосов
/ 24 сентября 2010

Если я правильно понимаю, вы пытаетесь заставить встроенный объект Flash вызывать событие нажатия кнопки HTML (<input type="button" ...>).

Вы не сможете сделать это, используя только jQuery. Клики на объекте Flash обрабатываются объектом Flash. Чтобы сделать то, что вы просите, вам нужно изменить источник Flash, чтобы сделать внешний вызов JavaScript. То, как вы это сделаете, во многом зависит от того, какую версию Flash / ActionScript вы используете для создания файла.

ActionScript 3 имеет класс ExternalInterface , который можно использовать для вызова внешних функций JavaScript. В файле ActionScript 3 это будет выглядеть примерно так:

Внутри обработчика щелчков элемента вызовите анонимную функцию JavaScript:

ExternalInterface.call("function(){$('#button').trigger('click');}");

Если вы сами не управляете объектом Flash, возможно, вы не сможете делать то, что пытаетесь сделать.

...