Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
155
rated 0 times [  161] [ 6]  / answers: 1 / hits: 41319  / 12 Years ago, tue, october 16, 2012, 12:00:00

I have a piece of JavaScript that dynamically creates an A tag inside of an existing div and then calls the jQuery function click on it. This works as intended in all browsers except Safari.



Safari returns the following error:




'undefined' is not a function (evaluating '$('.shell a')[0].click()')




Any ideas on what I'm doing wrong or why this doesn't work in Safari and how to get it to work (or one piece of code that works in all browsers) I've tried using .trigger(click) as well and it gives the same error.



JavaScript



function writeAndClickLink(url) {

$('.shell').html('<a href=' + url + '></a>');
$('.shell a')[0].click();
}


and in the HTML:



<div class=shell></div>


The reason I'm doing it this weird way is the function is called from a Flash site to open a twitter window where I am giving a reward for tweeting. This so far has been the only way I could get the tweet event to bind to the window. If I open the window any other way (window.open for example) it doesn't capture the bound event that lets me know they actually completed the tweet.



The flow is something like:




  • User clicks tweet button in flash

  • Flash calls javascript function to dynamically write href and click it

  • Twitter window opens

  • User successfully tweets

  • Tweet event is captured and updates flash with success

  • Content is unlocked in flash


More From » jquery

 Answers
29
var a = $('.shell a')[0];
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);
a.dispatchEvent(evObj);


See http://www.howtocreate.co.uk/tutorials/javascript/domevents (search for Manually firing events).


[#82515] Monday, October 15, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
rhett

Total Points: 671
Total Questions: 100
Total Answers: 102

Location: Hong Kong
Member since Tue, Oct 19, 2021
3 Years ago
;