在html5Mode和IE8中遇到与AngularJS链接有关的问题

时间:2014-07-30 17:04:03

标签: angularjs internet-explorer-8

我正在设置我的第一个AngularJS应用程序,并且在html5Mode中使用hashbang在IE8中遇到链接问题。有一个主视图,其中包含特定于日期范围的数据,以及指向页面中其他日期范围的链接。 我把它设置如下:

  • html5Mode已开启
  • 我正在使用ng-href从函数中获取每个链接
  • 应用的根目录不在站点根目录
  • 我在应用根目录(<base>)上有<base href="/my/app/"/>标记

在现代浏览器和IE8中首次加载页面时工作正常(必要,抱歉),IE8的URL按预期从"/my/app/my/first/page"转换为"/my/app/#/my/first/page。问题是旧浏览器和新浏览器之间的链接不一致。

如果我从"my/first/page"开始并创建指向"my/next/page"的链接,它在现代浏览器上的外观和行为都很棒,但IE8会转到"/my/app/#/my/first/page/my/next/page,就像Angular没有将其视为应用内链接。它只是将链接附加到当前地址。

如果我使用前导斜杠创建链接为"/my/next/page",IE8确实可以正常工作,但是现代浏览器将其视为绝对的并且在应用之外,这是预期的但不是所希望的。

如果我使用有效的绝对链接("/my/app/my/next/page"),则IE8会转到"/my/app/#/my/app/my/next/page"

我可以通过更改ng-click中的位置来解决这个问题,但我更喜欢链接的外观和行为类似于在单独的标签页中打开的普通链接等。

更新 经过一段时间的努力,我认为它可能与IE与<base>标签的问题有关。有些文章建议在基数或using javascript to fix it中使用FQDN,但这些都没有产生影响。

0 个答案:

没有答案