Это действительно сложно, и я бы советовал против этого, потому что это куча усилий за очень маленькую награду. Лучший способ (наиболее гибкий для пользователя) - это получить IP-адрес пользователя с помощью PHP / ASP / Ruby-on-Rails / что угодно и запросить одну из свободно доступных баз данных Geo-IP (Google it), чтобы сопоставить ее со страной. затем создайте собственную базу данных кодов стран (используя this или аналогичный).
Если вы действительно хотите сделать это с помощью JavaScript, это позволит вам делать это только в новых браузерах, и оно подскажет пользователю, что вы хотите знать его местоположение ... многие люди задаются вопросом, почему Вы просите об этом и нажимаете нет.
// first, check it's supported
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(insertCountryCode);
}
insertCountryCode
- это функция, которую вы передаете. Зачем? Поскольку запрос для пользователя о том, что ваш сайт должен знать свое местоположение, является немодальным, то есть страница будет продолжать работать, пока она ожидает ответа, поэтому функция, когда он отвечает, будет асинхронной ( вне нормального потока). Эта функция позволяет вам найти их местоположение и вставить код страны. В этой функции используйте Google Maps API и передайте параметр latlng, чтобы получить страну ... тогда вам нужно найти другой сервис поиска, который позволит вам узнать телефонный код.
Причина, по которой я объяснил это, состоит в том, чтобы показать вам, насколько это сложно. Гораздо более простой альтернативой было бы иметь выпадающий список с
<option value="+65">Singapore</option>
и введите значение в поле номера телефона. Вот что я тебе советую сделать.