[Slice and Dice] HTML5 Everywhere Задача 2


1

 

Make a web page that detects the current geolocation
­The web page should work fine in all desktop browsers, including IE7
 
Здравейте,

 

Имам малко странен проблем със задачата. Работи чудесно на IE7,8 и 9,  а на останалите браузъри не иска и това си е. Разрешил съм използването на current location на всеки от тях, но пак не работи.

Пробвах и с няколко дема, включително и с това в MDN, но без успех.

Кодът, който уж трябва да работи на FF, Chrome и т.н, можете да намерите ТУК

Не знам къде бъркам, вероятно е глупава грешка, но не мога да я открия. Вие имате/имахте ли  подобен проблем и имате ли решение?




Отговори



0
При мен твоя код работи на Firefox и Opera. На Chrome не работи, но това мисля ,че е от моя браузер.

от Petia Konova (0 точки)


0
Предполагам тогава, че проблемът е локален, но пак не се знае защо... Благодаря за отговора :)

от v.staykov (212 точки)


0
На ман твоя код под IE 7 , IE8 ми казва че не работи за този браузер. Аз лично го подкарах ва IE8 с Webshims lib, но под ie7 не работи за сега.
Някой колега успял ли е под IE7 ?

от webmatrix (825 точки)


0
При мен работи и на IE 7. Eто линк към сорса https://github.com/thegodmode/thegodmode.github.com/tree/master/SliceNDice/HTML5%20Everywhere/task2

от Божидар Пенчев (0 точки)

0
Както написах, това е кодът, който би трябвало да работи на основните браузъри, а работи само на IE9. За IE7,8 ползвам webshims и също работи коректно.

от v.staykov (212 точки)


3

Ето една доста интересна и полезна статия за Geolocation и справяне със съпътстващите проблеми. http://diveintohtml5.info/geolocation.html

Хубавото е, че демото работи навсякъде!

Ето и само частта, която ни интересува http://trialmix.cloudvps.bg/geolocation/geolocation.html

Работи на ИЕ7 и 8, но на ИЕ9 казва Unable to determine your location.


от pdrenovska (2196 точки)


0
Благодаря за информацията. В крайна сметка го подкарах на всички браузъри единствено с geoPosition.js от статията.

от v.staykov (212 точки)


0

Нещо под IE7 ми дама грешка в конзолата:

SCRIPT438: Object doesn't support property or method 'querySelector'
GeoLocation.html, line 31 character 17

Как мога да го оправя някой има ли идея?
 


Това ми е Source кода


от webmatrix (825 точки)


0
При мен имаше проблем когато използвах локални линкове към полифила и модернизра. Когато ги замених с уеб линкове се оправи, може да пробваш да не е заради това.

от Rokata (397 точки)

0
http://goo.gl/5WkRF
Такъв проблем се появява при деприкейтнати функнции или неподдръжка от някой стари браузъри.

от kirov (4821 точки)



6

Source

Demo

Решението е доста просто. Използвм Webshims Lib.

Слагам един conditional за IE9, за да не зарежда излишен скрипт на по-новите браузъри.

След това задавам на shim-a да активира geolocation и слагам скрипта за геолокация. Разбира се може да го интергрирате с google maps и т.н.

Shim-a използва http://freegeoip.net/ или https://developers.google.com/loader/?hl=de-DE#ClientLocation, за това резултатите на старите браузъри не са на 100% точни.

Едит: Интегрирах го с Google maps. Вижте сорса сложил съм подробни коментари.


от kirov (4821 точки)


0
Браво! мн яко решение. Естествено обаче IE прави проблеми. При тебе нормално ли върви на IE?

от ivivanov (903 точки)

0
Да, но показва грешна локация. Това е защото shim-a използва посочените сайтове за определяне на локацията. И все пак бива - София, България е достатъчно за IE 7 и 8 :D
Едит: Сега виждам, че конзолата се оплаква нещо, но иначе всичко си върви.

от kirov (4821 точки)



2

Source | Demo

Използвала съм geoPosition.js, както е описано в DiveIntoHTML5, и Google Maps Geolocation API.

Особености:

  • Not now не се държи според очакванията във Firefox. Когато цъкнеш Not now, това не значи "Не искам", а просто "Не взимам решение" иии нищо не се случва. Има различни начини да се workaround-не. Аз избрах този с timeout.
  • В Chrome настройките са малко гадни. Когато отварям просто локален файл, нищо не ме пита, а директно хвърля error. Когато го отварям през localhost, работи нормално.

Искаше ми се да го направя в по-голяма степен обектно-ориентирано, но нещо не ми се получи номерът.

В момента имам клас Map и към него има метод showMap, който - общо-взето - прави всичко, както и един exception за случая с Not now.

Аз исках взимането на геолокацията да става през метод на клас Point и чак след това да се появява картата. Geolocation обаче работи асинхронно и картата ми се появява преди изчисляването на локацията :/


от rnikiforova (1198 точки)


0
Може да шибнеш един маркер на картата, да се знае къде е точно точката :)

от kirov (4821 точки)


1

Подкарах я тази задачка под IE7 въпреки че имах пробелм с  document.querySelector, което не са поддържа в IE7.

Демото е с карта и някаква измислена позиция :D

Demo

Sorce


от webmatrix (825 точки)


0

Тази задачка реших като използвах следните ресурси, малко информация и дема от w3school , където задачата е почти решена за браузърите ,които поддържат geolocation, повече инфо за къде се поддържа тук.   HTML5 Demo за локацията. А за старите браузъри съм използвал, както повечето колеги, geoposition. Може да използвате и Geolocation API от Google.

Поздрави