Hi all,
Background:
I'm currently working on a landing page which will display the same on both desktop & mobile devices, which is what we "want" for now.
However, we've created an alternate registration page for mobile devices. This page can be accessed by clicking on a specific button, which has a class on it that will determine if the user is on a mobile device or not. If they are not, the normal action will occur, such as a registration popup, built specifically for desktop users.
The problem is:
I'm firstly having to use .remove to take away the class of pbx_ajax which operates the popup, so mobile users aren't affected by the popup and will continue onto the page we specially built for them. However, it seems my script is removing the class straight away, which prevents the popup from working for desktop users.
Secondly, the script doesn't actually seem to work, it simply doesn't fire, which begs the question if i've cocked up my class bind.
Code is attached below, please if anyone has any advice, do let me know as i'm at my wits end.
Oh and i'm sure you'll notice, i'm polling for when the jQuery has loaded, as the library is located at the bottom of our site (its a rather large site).
The first section of my JS, which is contained within a function named: globalDetectDevice, is a mobile detection script from this site: http://www.hand-interactive.com/reso...javascript.htm
The javascript/jquery
Code:
<script type="text/javascript">
//Global function that will detect what device the page is being viewed on
function globalDetectDevice() {
var deviceIphone = "iphone" ;
var deviceIpod = "ipod" ;
var deviceAndroid = "android" ;
//Initialize our user agent string to lower case.
var uagent = navigator.userAgent.toLowerCase() ;
function DetectDevice() {
if ((uagent.search(deviceIphone) > -1) || (uagent.search(deviceIpod) > -1) || (uagent.search(deviceAndroid) > -1)) {
window.location = "/landing/register/mobile" ;
}
else {
return false;
}
}
}
//Binding the above function to a class, that we can then attach to any clickable element
//As jQuery is at the bottom of page, we poll the function until jQuery has loaded, once loaded, we clear the polling using clearTimout
var bindTimer = setInterval(function() {
if ("undefined" != typeof jQuery && globalDetectDevice) {
$('.detectDevice').bind('click', globalDetectDevice);
clearTimeout(bindTimer);
}
}, 50);
</script>
the html button
Code:
<a class="detectDevice pbx_ajax" title="Join Free" href="?cat=popup&action=open&settings=pbx_popup_register">~graphic("btn-get-started-prints-LP")</a>
thanks for any help
Bookmarks