首页 > 代码库 > AngularJS html5Mode 使用 SVG Marker失效

AngularJS html5Mode 使用 SVG Marker失效

接上一篇文章:

问题:

解决了html5Mode的路由问题之后,今天突然发现一个奇怪的问题:项目中使用SVG所画的箭头全都不见了?反复测试之后发现Chrome和Firefox有问题,而IE却可以显示,但是在处理html5Mode之前这三个浏览器都是没有问题的。

解决思路:

Google了一下,发现是在页面中加了base标签之后,svg中的marker-end中url路径出错,@jeffbcross 给出了两个方案:

1.去掉base标签,然后修改html5Mode方法为:$locationProvider.html5Mode({ enabled: true, requireBase: false }),意思是不需要base标签。可是很遗憾,这种方案我试了是无效的,反而会报出很多错误。

2.在 @jeffbcross的github上 给出了另一个解决方案,而这个方案确实有效。可是我发现Chrome和Firefox的问题解决了,而IE中的箭头又不见了,呃。。。

 

注:当初选用AngularJS1.3+和Bootstrap就已经建议同事使用Chrome,基本放弃其它浏览器(IE,360等),所以也没再花时间研究浏览器兼容性,有解决方案的朋友可以指出

 

AngularJS html5Mode 使用 SVG Marker失效