【问题标题】:How Do I Change an <svg> Tag To An <img> Tag with js?js如何将<svg>标签改为<img>标签?
【发布时间】:2015-06-14 08:24:09
【问题描述】:

我正在编写一个 chrome 扩展程序来为朋友更改某个网站的徽标。问题是徽标是&lt;svg&gt; 标签。 js中如何更改html标签和内容?

【问题讨论】:

  • 可以在img标签(Node.insertBefore)之前插入svg标签,然后去掉img标签(Node.removeChild)。
  • 我正在尝试插入 ,然后删除 。这仍然有效吗?另外,有没有办法从谷歌浏览器扩展中使用 Node?​​span>
  • 不,无法通过 Chrome 扩展程序使用 Node。

标签: javascript html image svg google-chrome-extension


【解决方案1】:

不确定是否允许使用 jQuery,但可以使用 replaceWith()

$(document).ready(function(e) {
   $('svg').replaceWith('<img src="http://images.all-free-download.com/images/graphiclarge/smiley_10_55841.jpg" alt="smiley!"/>'); 
});
svg {
    width: 200px;
    height:200px;
}

img {
    width: 200px;
    height: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
  <path d="M30,1h40l29,29v40l-29,29h-40l-29-29v-40z" stroke="#000" fill="none"/> 
  <path d="M31,3h38l28,28v38l-28,28h-38l-28-28v-38z" fill="#a23"/> 
  <text x="50" y="68" font-size="48" fill="#FFF" text-anchor="middle"><![CDATA[410]]></text>
</svg>
</div>

如果只能使用 JavaScript,则有一个 replaceChild 函数。

【讨论】:

  • 我刚刚更新了我的答案。您只需要运行脚本而不是将其包含在事件侦听器中。
  • 我不相信我能够使用 jquery,因为控制台记录了 Uncaught ReferenceError: $ is not defined。有没有办法使用 HTML 注入链接到谷歌的 jquery 托管,或者用普通的 javascript 做到这一点?
  • 是的。请看here。你也可以看看 replaceChild 这是一个 JavaScript 函数
  • 天哪,非常感谢!我不了解replaceChild 函数的任何文档,所以我看了一下其他帖子,jquery 完美运行!
  • 不好意思,我想说试试$('svg:first')。更多信息:first selector
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 2020-05-04
  • 2019-05-27
  • 2019-01-15
  • 2020-08-02
  • 2016-11-26
  • 2019-07-14
  • 2020-08-16
相关资源
最近更新 更多