FruitNotes beta
Your All-in-One Online Notebook
FruitNotes Blogs | Home  
how to make JS click a link automatically
Last updated at (Thu Jun 18 2009 18:13:52)
Posted by: Nitin Gupta
0%




reference: http://www.webdeveloper.com/forum/showthread.php?t=161317

 

09-21-2007, 11:11 AM
jm999 jm999 is offline vbmenu_register("postmenu_804841", true);
Registered User
 
Join Date: Sep 2007
Posts: 1
Question Trying to get javascript to click a link when function is called

Hi. I'm trying to create a function that clicks a link when called. Its working in IE 7 but not in Firefox/Safari. here is the function:

Code:
			function open_greybox() {
			document.getElementById("grey_link").click();
			}
			
The error console for firefox is telling me:

Error: this.document.getElementById("grey_link").click is not a function

Does firefox not support "click()"? Is there a workaround? A hidden link has to be clicked by javascript when the function is called (from a flash movie).

Any help would be greatly appreciated!
Reply With Quote
  #2  
Old 09-21-2007, 11:34 AM
Webnerd's Avatar
Webnerd Webnerd is offline vbmenu_register("postmenu_804855", true);
Bitter Web Veteran
 
Join Date: Jul 2005
Location: Damascus, Maryland
Posts: 729
Yes you can, but not that way in a cross-browser fashion. Ie uses fireEvent and FF,Safari etc use a combination of other stuff:

Code:
			function fireEvent(obj,evt){
			var fireOnThis = obj;
			if( document.createEvent ) {
			var evObj = document.createEvent('MouseEvents');
			evObj.initEvent( evt, true, false );
			fireOnThis.dispatchEvent(evObj);
			} else if( document.createEventObject ) {
			fireOnThis.fireEvent('on' evt);
			}
			}
			
So, you would call :

Code:
			fireEvent(document.getElementById("grey_link"),'click');
			
__________________
User is a four letter word!
Reply With Quote
  #3  
Old 09-21-2007, 11:35 AM
harumph harumph is offline vbmenu_register("postmenu_804856", true);
Registered User
 
Join Date: Aug 2007
Posts: 295
Why not put the link call within the function?

<script>
Function wugga(){
//....
//do function stuff
//....
document.location.href = "blah.html";
}

//-->
</script>

?
Reply With Quote
  #4  
Old 05-09-2009, 10:56 PM
Paka Paka is offline vbmenu_register("postmenu_1004564", true);
Registered User
 
Join Date: May 2009
Posts: 4
This works for Firefox

Firefox does not have a click() method for links, only html forms elements. You can simulate the functionality by getting and evaluating the onClick handler from the anchor tag:
Code:
			function open_greybox() {
			var onclickHandler = document.getElementById('grey_link').getAttribute('onclick')
			if (onclick == null) document.location = document.getElementById('grey_link').getAttribute('href');
			else eval(onclickHandler);
			}
			

Last edited by Paka; 05-09-2009 at 11:18 PM. Reason: added code
Reply With Quote
  #5  
Old 05-11-2009, 04:47 PM
rnd me's Avatar
rnd me rnd me is offline vbmenu_register("postmenu_1004944", true);
working on the chain...
 
Join Date: Jul 2008
Location: urbana, il
Posts: 891
no need for complicated scripts.

if you have an onclick attrib, simply call it:
document.getElementById("grey_link").onclick();
Reply With Quote
  #6  
Old 05-14-2009, 01:56 PM
Paka Paka is offline vbmenu_register("postmenu_1005770", true);
Registered User
 
Join Date: May 2009
Posts: 4
Generic link clicking function

Cleaned up version for use on any link where the onclick event is unknown to exist:
Code:
			function clickLink(linkobj) {
			var onclickHandler = linkobj.getAttribute('onclick')
			if (onclickHandler == null) document.location = linkobj.getAttribute('href');
			//pass self reference back to handler in case handler normally called with 'this', other params will fail:
			else eval(onclickHandler(linkobj));
			}
			

Last edited by Paka; 05-14-2009 at 02:27 PM.
Reply With Quote
  #7  
Old 05-14-2009, 04:07 PM
Paka Paka is offline vbmenu_register("postmenu_1005811", true);
Registered User
 
Join Date: May 2009
Posts: 4
Generic link clicking function (revised)

Cleaned up version for use on any link where the onclick event is unknown to exist. (Previous post was buggy):
Code:
			function clickLink(linkobj) {
			if (linkobj.getAttribute('onclick') == null) {
			if (linkobj.getAttribute('href')) document.location = linkobj.getAttribute('href');
			}
			else linkobj.onclick();
			}
			

Last edited by Paka; 05-14-2009 at 04:35 PM.
Reply With Quote

 

 

 

 


Rate this blog

   Report Abuse


Comments


Leave your comment(s) below:
To start Your own Blog




Other Blogs
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
» 
2007 FruitNotes.com - All Rights Reserved.