2016-04-25 79 views
0

我有一个Angularjs应用程序可以在表格中生成自动建议。表中的每个项目都有一个URL(通过Angularjs模板)。如果我启动自动提示,并选择一个与鼠标的链接,它可以很好地运行到像domain.com/#/samples/sampleName.html这样的URL(我知道这在使用Angular时有点奇怪,但相信我,有这样做的奇怪的SEO原因不是我的。)Javascript或浏览器以不同的方式设置位置

如果你点击链接(用鼠标)就没有问题。如果您通过浏览器工具在页面源代码中检查链接来单击链接,它可以正常工作。然而,JavaScript代码的此位(允许某人通过与箭头键自动提示列表走路,按下回车键应该转到页为好。

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

警报显示了一个正确形成的URL。然而,当为什么这两种方法(点击并设置位置对象)对URL的编码方式不同?

回答

0

我是这样的设置,我得到类似这样的东西domain.com/#%2Fsamples%2FsampleName.html并且当发生这种情况时,浏览器(正确地如此)什么都不做。不知道为什么其他方法(点击)工作,我想你用不同的代码来处理它们,但是这样做应该可以做到:

location = decodeURIComponent(selectedURL); 
+0

谢谢,Ozrix。我同意应该这样做,但事实并非如此。我也尝试单独设置location.href和location.hash,但仍然没有这样做。 – russellmania

+0

你能分享完整的代码吗? – Ozrix

相关问题