1

我正在尝试通过单击另一个 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>

这就是替换浏览器中的表单按钮(从萤火虫得到这个)

<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 并试图从操作上传 div 触发嵌入对象“单击”

4

1 回答 1

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 对象,您可能无法执行您想要执行的操作。

于 2010-09-24T17:27:08.313 回答