第二次更新:由于没有修复 Safari 和其他一些奇怪的行为,我决定使用这个选择为 Safari 用户创建所有新的无聊内容(基本上放弃了 Safari 的脚本)......
<?php if($detect->version('Safari')) { ?>
$(function() {
/* create second option because Safari sucks? */
$("#gotorep").remove();
$("#entersite").remove();
$("#entersite2").css({'display':'inline'});
});
<?php } elseif($detect->isMobile()) { ?>
function startfunc() {
if(navigator.geolocation) {
.
.
.
错误更新(已修复,已删除):我在 Safari 中的错误是 35772ReferenceError:找不到变量:在此位置失败...
$(function() {
if(navigator && navigator.geolocation) {
var fallback = setTimeout(function() { fail('10 seconds expired'); }, 10000);
***http://devv.referadiabetic.com/:35772ReferenceError: Can't find variable: fail
navigator.geolocation.getCurrentPosition(
function (pos) {
clearTimeout(fallback);
原始问题:我可以让它在除 Safari 之外的其他移动设备/浏览器中工作。在 iphone 上它失败了,所以用 ! 反转了 if 选择。并在具有相同问题的 Safari 桌面浏览器中进行了测试,一旦我同意就不会返回我的数据。这是我现在正在使用的代码块......
<?php if(!($detect->isMobile())) { ?>
$(function() {
if(navigator && navigator.geolocation) {
var fallback = setTimeout(function() { fail('10 seconds expired'); }, 10000);
navigator.geolocation.getCurrentPosition(
function (pos) {
clearTimeout(fallback);
var point = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude);
new google.maps.Geocoder().geocode({'latLng': point}, function (res, status) {
if(status == google.maps.GeocoderStatus.OK && typeof res[0] !== 'undefined') {
var zip = res[0].formatted_address.match(/,\s\w{2}\s(\d{5})/);
if(zip) {
var zipcodepassed = zip[1];
$("#em").html(zipcodepassed);
var reps = reps_load;
var ads_repList_URLtoFullName = ads_repList_URLtoFullName_load;
var rek = ads_repList_URLtoFullName;
var rep = reps[zipcodepassed];
if (rep == undefined || rep == null || rep == "") {
$(function() {
$("#gotorep").remove();
$("#entersite").remove();
$("#entersite2").css({'display':'inline'});
});
}
var repname = rek[rep]; //i.e. shaner will be Shane Reaume in repname variable
$("#yourrep").html(repname);
$("a[href='http://devv.referadiabetic.com']").attr('href', 'http://devv.referadiabetic.com/' + rep);
}
}
});
}
);
}
});
我已经有了这个作为后备,我正在使用 IP 地址来获取邮政编码,但是由于移动设备的性质,我将它们设置为执行此代码块。