you can implement it with dom mouse event. I wrote some code:
first, you have got a nsIContent * object named aNode.
C++:
nsCOMPtr<nsIDocument> doc = aNode->GetCurrentDoc();
nsCOMPtr<nsISupports> tmpContainer = doc->GetContainer();
nsCOMPtr<nsIScriptGlobalObjectOwner> docShell(do_QueryInterface(tmpContainer));
nsCOMPtr<nsIScriptGlobalObject> tmpScriptObj =docShell->GetScriptGlobalObject();
nsCOMPtr<nsIDOMAbstractView> tmpJSWindowObj = do_QueryInterface(tmpScriptObj);

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, tmpJSWindowObj, 
//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);
//NS_RELEASE(aNode);
return PR_TRUE;
}

JS code:
//Please visit: https://developer.mozilla.org/en/DOM/event.initMouseEvent   
var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window,
    0, 0, 0, 0, 0, false, false, false, false, 0, null);
  var cb = document.getElementById("checkbox"); 
  cb.dispatchEvent(evt);

C++ code was implemented according to JS code.




Xu Jianbin
2009-02-20



发件人: harvinder singh
发送时间: 2009-02-20 02:35:08
收件人: dev-tech-layout
抄送: 
主题: How to simulate mouse click on a frame?

Is it possible to simulate a mouse click on frame object or its equivalent? 
If somebody can point to a source code that would be great.
thanks
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout
_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to