2016-04-25 1 views
0

У меня есть приложение Angularjs, которое генерирует аутосуппозиции в таблице. Каждый элемент в таблице имеет прикрепленный к нему URL (через шаблоны Angularjs). Если я запускаю автозагрузку и выбираю ссылку с помощью мыши, она отлично работает с URL-адресом, например domain.com/#/samples/sampleName.html (я знаю, что это немного странно с точки зрения использования Angular, но поверьте, есть странные причины SEO для этого. причины пути, а не мои.)Javascript или браузер устанавливают местоположение по-разному

Если вы нажмете на ссылку (с помощью мыши), это нормально. Если вы нажмете на ссылку, проверив ее в источнике страницы с помощью инструментов браузера, она работает нормально. Тем не менее, это немного яваскрипта кода (позволяя кому-то пройти через автозаполнением список с помощью клавиш со стрелками и нажать ввести должны перейти на страницу, а также.

selectedURL = $('#autosuggest').children().attr('href'); 
alert('You selected ' + selectedURL); 
location = selectedURL; 

настороже показывает правильную форму URL. Тем не менее, когда местоположение получается, я получаю что-то вроде этого domain.com/#%2Fsamples%2FsampleName.html, и когда это произойдет, браузер (по правде говоря) ничего не делает. Почему эти два метода (щелчок и установка объекта местоположения) кодируют URL-адрес по-разному?

ответ

0

Я не знаю, почему работают другие методы (щелчок). Думаю, вы справляетесь с ними с помощью другого кода. Однако это должно сделать трюк:

location = decodeURIComponent(selectedURL); 
+0

Спасибо, Ozrix. Я согласен, что должен сделать трюк, но это не так. Я также попытался установить location.href и location.hash отдельно, но это все еще не делает этого. – russellmania

+0

можете ли вы предоставить полный код? – Ozrix

Смежные вопросы