Mart Posted June 6, 2016 Share Posted June 6, 2016 Hi! I'm trying to build a loop, that looks for certain functions to be loaded, and then using one of them (window.mouseflow.getSessionId) to fetch a value, to be send to the other (s.tl). The getting and the sending works. The issue is this: When the script is loaded, it looks for the functions. It should then try to sending them every 10 ms, and do so 50 times. I want this, because the functions might not be loaded when this script runs. I've added a console.log. If the functions are not there, I would expect it to print out the numbers 50-1. It does not, so I'm suspecing it only tries once. Can any of you tell me why? var tries=50; function trySending () { s.tl(this, 'o', 'mouseflow sessionID', { linkTrackVars: 'prop50', prop50: window.mouseflow.getSessionId() });} while (tries > 0) if (window.mouseflow.getSessionId && s.tl && tries > 0){ setTimeout(trySending(), 10); {break;} } else if (tries > 0); { tries--; console.log(tries) } Link to comment Share on other sites More sharing options...
Mart Posted June 6, 2016 Author Share Posted June 6, 2016 Hi Again. I found one issue. A missing set of { } The script now looks like this - still do as I expect, though. It prints out a number about somwhere between 60 and 80, so I still need a helping hand I think. var tries=50; function trySending () { s.tl(this, 'o', 'mouseflow sessionID', { linkTrackVars: 'prop50', prop50: window.mouseflow.getSessionId() });} while (tries > 0){ if (window.mouseflow.getSessionId && s.tl && tries > 0 && window.mouseflow.getSessionId !== -1){ setTimeout(trySending(), 10); {break;} } else if (tries > 0); { tries--; console.log(tries) ; }} Link to comment Share on other sites More sharing options...
davej Posted June 6, 2016 Share Posted June 6, 2016 Google Analytics? I don't understand your fancy "truthy" conditionals. When is this true? if (window.mouseflow.getSessionId && s.tl && tries > 0 && window.mouseflow.getSessionId !== -1){ Also... setTimeout(function_name_without_parens, delay) Link to comment Share on other sites More sharing options...
setun-90 Posted June 9, 2016 Share Posted June 9, 2016 (edited) I noticed this in your while loop: } else if (tries > 0); { The semicolon inserts a blank statement in the 'else if', causing whatever came after it to behave incorrectly. I can't tell how you intended it to behave, but I'm sure you didn't put that semicolon intentionally. Edited June 9, 2016 by setun-90 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now