当前位置: 首页 > 知识库问答 >
问题:

在Firefox和AngularJS中使用SVG符号

白越
2023-03-14

我试图将SVG图标与Angularjs一起使用,并将html5Mode设置为true。为了使用HTML5模式URL,您需要在html文档的头部设置基本路径。

<base href="/">

然后,我将所有svg图标加载到索引中。html页面作为符号。

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
    <symbol id="user" viewBox="0 0 64 64">
        <path d="...">
    </symbol>
</svg>

我不知道如何在Firefox中保持一致。在Chrome和IE中,我总是可以将svg设置为svg符号的id。

<svg ng-class="type" class="main-nav-icon">
   <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#user"></use>
</svg>

但是,Firefox中没有显示任何图标。从之前的问题中,我被告知这是因为base标签。所以我尝试将base标签设置为绝对url

<base href="http://localhost:5080/">

然后尝试use标签的所有url组合。如果我使用基于下载index.html页面的原始路径的绝对url,我终于让它工作了。

例如,如果页面是从http://localhost:5080/user加载的,那么像下面这样设置use标记将显示图标:

<svg ng-class="type" class="main-nav-icon">
   <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost:5080/user#user"></use>
</svg>

当用户在应用程序周围单击时,此操作正常。但是,如果用户随后在<代码>http://localhost:5080/photos由于href现在不正确,所有图标再次被破坏。然后我开始缓存索引所在的原始url。html页面是从中加载并使用它的。然而,即使在某些页面上刷新,也会再次破坏所有图标。

在AngularJS中使用html5mode,将基本标签设置为什么是正确的,使用标签href设置为什么是正确的,以便在IE、Chrome和Firefox中显示图标?

共有2个答案

易琨
2023-03-14

对于任何对同一问题的Angular 2解决方案感兴趣的人,我找不到一个,所以我向NPM发布了这个小指令:https://www.npmjs.com/package/ng2-inline-href

常波
2023-03-14

似乎这里提到的这个错误并由Jeff Cross(来自谷歌)修复

Auto指令,用于自动重写SVG元素中片段引用的绝对哈希URL,以解决Gecko和Blink中的副作用。

 类似资料:
  • 问题内容: 我想要一些有关将XML命名空间属性与angular结合使用的信息。 问题是angular附带了一些指令,用于在angular分析了表达式后处理诸如href和src之类的书写属性(否则浏览器将尝试将其加载为url) https://github.com/angular/angular.js/blob/master/src/ng/directive/booleanAttrs.js#L329

  • 问题内容: 我正在使用SVG和angular.js进行大型项目,并且需要对svg指令模板的坚实支持。不幸的是,当angular渲染模板时,它将创建DOM节点,而不是SVG节点。我当前的解决方法是使用jquery.svg自己管理创建和删除节点,但是它受到限制。示例:http://plnkr.co/edit/Xk8wM3?p = preview 我想让指令成为实际的svg元素,而不是一些没有任何实际作

  • 关于 SVG GIF、JPEG、WBMP 和 PNG 等用于 Web 的位图图像格式,都使用像素网格来描述图像。生成的文件有可能很庞大,局限于单一(通常较低)的分辨率,且在 Web 上会占用大量带宽。SVG 是将图像描述为形状、路径、文本和滤镜效果的矢量格式。生成的文件很小,可在 Web、打印甚至资源有限的手持设备上提供较高品质的图像。用户无须牺牲锐利程度、细节或清晰度,即可在屏幕上放大 SVG

  • 问题内容: 我在使转换原点在Firefox(v.18 +,未测试的其他版本)中工作时遇到问题。Webkit浏览器可以正常工作。我正在尝试将原点设置为组的中心,但到目前为止我没有尝试过。 这是代码: 问题答案: 我试图使用CSS过渡围绕其中心点旋转一个简单的齿轮svg图形。我和Firefox有同样的问题;转换原点似乎没有任何效果。 解决方案是绘制原始svg形状,以使其中心位于坐标0、0处: 然后在其

  • 问题内容: 这是我的代码,用于在用户忘记密码的情况下重置用户密码。数据通过AJAX请求发送到PHP代码,PHP代码根据输入的有效性简单地回显“ Y”或“ N”。 问题是,AJAX调用在Firefox 19和IE 9中不起作用。我没有在其他版本的IE中尝试过。AJAX调用可在chrome和safari中完美运行。有人遇到过同样的问题吗?有人可以帮忙吗? 问题答案: 您必须使用事件对象作为事件处理程序

  • 问题内容: 如何在Angular中使用Google GeoChart?我想在geoChart中注入角度数据,就像Javascript中的以下示例一样:https://developers.google.com/chart/interactive/docs/gallery/geochart?hl = it#Regions 一些忠告? 问题答案: Angular Google Chart可以做到这一点