-1

埋め込まれた iframe 内に html を作成する必要がある作業を行っています。jsbinのようなものです。

しかし、私は最初のスパイクに困惑しています。

HTML を iframe 内に配置すると、HTML がレンダリングされないのはなぜですか?

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <iframe>
    <html>
      <head><meta charset=utf-8 /></head>
      <body>
        <h1>Big Header</h1>
      </body>
    </html>
  </iframe>
</body>
</html>

これが私のjsbinです。

さらに、d3を使用してiframe内にいくつかのsvgを描画しようとすると、それらはすべて奇妙に見え、スケーリングされませんでした。開発ツールを開いて svg テキストを html として編集した後、意味のないスペースをどこかに追加しても、再描画して正しくレンダリングできることがわかりました。したがって、私が読むことができるリソースを誰かが教えてくれれば、ボーナスポイントは明らかに iframe が私が思ったように機能しないためです。

4

2 に答える 2

1

iframe は、ロードするページを指す必要があります。iframe タグの間に html を入れないでください。iframe タグの間に何かを入れる場合 - クライアントが使用しているブラウザーがタグをサポートしていない場合に表示するテキストです。独自のローカル html ページの上に html を作成し、上の iframe src 属性をポイントしてその Web ページをポイントする必要があります。

于 2013-01-10T15:49:56.650 に答える
0

一日の研究の後:

マイクが言ったように、iframe 内の html は、ブラウザーが iframe をサポートしていない場合のためのものであり、それ以外の場合は表示されません。ただし、サーバー側のクエリなしで、その場で iframe 内にドキュメントを作成することは絶対に可能です。これを行うには、javascript を使用してドキュメントを作成する必要があります。それへの参照を取得して、次のように html を記述できます。

var  iframe = document.getElementsByTagName('iframe')[0];
    ,doc = iframe.contentDocument || iframe.contentWindow.document
    ; 
doc.open();
doc.write('<p>Some html</p>');
do.close();

レミーがここで言及しているように、文書は書く前に開いてから閉じなければならないことに注意してください。

于 2013-01-11T03:13:50.460 に答える