On 6月11日, 上午9时55分, "Xu Jianbin" <[EMAIL PROTECTED]> wrote:
> Hi, all:
>  I want to click a input button automaticlly inside mozilla. i wrote followed 
> source:
>
> PRBool PSClickEvent::FireEvent(nsIContent *aNode)
> {
>  nsCOMPtr<nsIDocument> doc = aNode->GetCurrentDoc();
>
>  if (doc)
>  {
>    nsCOMPtr<nsIDOMDocumentEvent> tmpDocEvent =do_QueryInterface(doc);
>    nsCOMPtr<nsIDOMEvent> tmpClickEvent;
>    nsAutoString tmpEvent(NS_LITERAL_STRING("MouseEvents"));
>    tmpDocEvent->CreateEvent(tmpEvent, getter_AddRefs(tmpClickEvent));
>    nsCOMPtr<nsIDOMMouseEvent> tmpMouseEvent =do_QueryInterface(tmpClickEvent);
>    nsAutoString tmpEventType(NS_LITERAL_STRING("click"));
>           //type, bubble, cancel, view
>    tmpMouseEvent->InitMouseEvent(tmpEventType, PR_TRUE, PR_TRUE, nsnull,
>     //screen, client rect
>      0, 0, 0, 0, 0,
>     //
>      PR_FALSE, PR_FALSE, PR_FALSE, PR_FALSE,
>     //
>     0, nsnull);
>    nsCOMPtr<nsIDOMEventTarget> tmpEventTarget =do_QueryInterface(aNode);
>    PRBool tmpEventRes;
>    tmpEventTarget->DispatchEvent(tmpClickEvent,  &tmpEventRes);
>    return PR_TRUE;
>  }
> return PR_FALSE;
>
> }
>
> html code:
> <html>
> <title> form-tt</title>
> <body>
> <form id="form_11" action="/cgi-bin/form-res.cgi" method="POST">
> <input id="mm_text" name="ddd" type="text" value="test_1">
> <input id="mm_button" name="ccc" type="button" value="Commit" 
> onclick="counter = 10+1; mm_text.value = mm_text.value +counter;">
> <input id="mm_submit" name="sss" type="button" value="Submit" 
> onclick="form_11.submit();">
>
> </form>
> </body>
> </html>
> I post a event to main thread  to call PSClickEvent::FireEvent(nsIContent 
> *aNode). if click commit button or Submit ,the result is OK.
> if click Submit after clicked Commit, at this point URL changed, mainthread 
> excutes garbage collector to release js cache. i don't know why  to release 
> tmpClickEvent object in GC.
>
> I want to know how to trigger a click event on  button ?

I think  you have posted to a wrong group. Your question has little to
do with layout. It is better to post to the extension developing group
or the firefox group.

Regards!
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to