Jquery:通过单击Div来触发嵌入对象单击?

时间:2010-09-24 14:37:12

标签: jquery jquery-plugins triggers embedding swfupload

我试图通过点击另一个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" />

我不确定我是否应该尝试触发表单按钮或对象,我猜测对象,因为它在页面呈现时不显示为按钮,它显示为嵌入对象?

我在正常输入按钮上使用了代码,但是当我将它应用于此时它不会

任何人都有任何想法我会怎么做?

(actions-upload div只是一个带有bg图像的普通div)

感谢您的时间;)

已修改以获取更多信息:

这是我在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触发嵌入对象“click”

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您试图让嵌入式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对象,则可能无法执行您尝试执行的操作。