【问题标题】:Using document.write() to output markup使用 document.write() 输出标记
【发布时间】:2015-09-03 11:58:25
【问题描述】:

我的页面上有一个内联 svg 作为变量。我正在对其进行一些修改。如何在页面(不是 svg 图像)上回显 viewText 并进行修改。如何让viewText 显示在页面上?

例子:

<script>
var viewText = "<svg width="400" height="100"><rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" /></svg>"

  var rect = document.getElementsByTagName("rect"); 
  for (var i = 0; i < rect.length; i++) { 
   //do something 
  }

document.write( viewText );//how do I output the modified 'viewText' code on the page?
/*e.g.: 
<svg width="400" height="100"><rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" /></svg> */
 </script>

【问题讨论】:

  • 投反对票:请就我的问题被否决的原因发表评论。这有帮助。

标签: javascript jquery html


【解决方案1】:

类似的东西

<div id="target"></div>
<script>
    var viewText = '<svg width="400" height="100"><rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" /></svg>';

    var rect = document.getElementsByTagName("rect"); 
    for (var i = 0; i < rect.length; i++) { 
        //do something 
    }

    document.getElementById('target').textContent = viewText;
</script>

【讨论】:

  • 是否可以在var rect = document.getElementsByTagName("rect"); 中使用var viewText,以便在document.getElementById('target') 中捕获修改?
【解决方案2】:

只需在 SVG 元素中添加一个 id 并使用 outerHTML:

<svg width="400" height="100" id="svg1">
   <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)" />
</svg>

<div id="target"></div>

var yourCode = document.getElementById("svg1").outerHTML;
document.getElementById("target").textContent=yourCode;

你会得到你的 SVG 作为一个字符串,你可以把它放在一个 id="target" 的 div 中:

'<svg width="400" height="100" id="svg1">
   <rect width="400" height="100" style="fill:rgb(0,0,255);stroke-width:10;stroke:rgb(0,0,0)"></rect>
</svg>'

【讨论】:

  • 谢谢。 :) 我做了document.write( document.getElementById("svg1").outerHTML ) 但它输出了 svg 图像。我需要能够看到经过修改的字符串。
  • 把它放在&lt;pre&gt;标签中
  • 是的,虽然我个人认为你不应该使用document.write,但这样做可能有正当的理由——尽管自新千年以来我还没有遇到过
  • @JaromandaX 我将 svg 包装在 pre 标签中,将 id 添加到 pre 标签中。但我仍然看到图像而不是修改后的字符串。
  • 是的 ..
     似乎并没有像我想象的那样做......如果你有一个元素,比如&lt;div id="target"&gt;&lt;/div&gt;,那么你可以简单地输入document.getElementById('target').textContent = yoursvgstring;,然后它'会甜的
猜你喜欢
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
相关资源
最近更新 更多