6

MeteorをIframeで使用する例を無駄に探しました。(最終的にそこに行くコンテンツのために、DIVの代わりにiframeを使用する必要があることに注意してください)。私は両方を試しました:

<body>
  {{> hello}}
</body>

<template name="hello">
  <h1>Hello World!</h1>
  {{greeting}}
  <input type="button" value="Click to see what you typed" />
  <br>
  <iframe id="compose" src={{> iframe-content}} height=600></iframe>
</template>

<template name="iframe-content">
  <body>
    <div contenteditable="true">
      Edit me
    </div> 
  </body>
</template>

これは再帰的に読み込まれ、サブIframeを継続的に作成します。

私も試しました

<iframe id="compose" src="content.html" height=600></iframe>

ただし、Meteorは複数のHTMLファイルを一緒に変更するため、iframeも失敗します。

これまでに機能したのはSRCではなくSRCDOCだけですが、FFなどの複数のブラウザーでは十分にサポートされていません。

では、Meteor内で、できればコードを厳密に使用するのではなく、テンプレートでiframeを使用するための秘訣は何でしょうか。

4

3 に答える 3

7

'public'フォルダーが必要です。ここで説明するように、Meteorはそのフォルダにコンテンツを残します:http://docs.meteor.com/#/full/structuringyourapp

「content.html」をプロジェクト/アプリのルートにある「public」という名前のフォルダーに移動し、htmlで次のように参照します。

<head>
  <title>iframe</title>
</head>

<body>
  {{> hello}}
</body>

<template name="hello">
  <h1>Hello World!</h1>
  {{greeting}}
  <input type="button" value="Click" />

  <iframe src="hello.html"></iframe>

</template>

他の読者にわかりやすくするために、Meteorはiframeに問題はありません。問題は、iframeが参照する「content.html」ファイルの場所にありました。

于 2013-01-11T22:33:12.677 に答える
1

私はあなたの最初のコード例を理解していません:

<iframe id="compose" src={{> iframe-content}} height=600></iframe>

私の知る限り、それはiframeの仕組みではありません。src属性にURLを指定する必要があり、実際のHTMLをそこに配置することはできません。だからそれはうまくいきません。

2番目の例について:

<iframe id="compose" src="content.html" height=600></iframe>

content.htmlそのパスが存在することを指定していない場合、Meteorはどこに到達すると思いますか?Meteorはデフォルトでルーティングを設定しないため、/content.htmlにリソースはありません。したがって、Meteorルーターパッケージまたは同様のルーティングメカニズムを追加してから、/ content.htmlを提供するように求められたときに、テンプレートのコンテンツを返すようにMeteorに指示する必要があります。難しいのは、Meteorが通常提供されるMeteorでラップされたライブHTML構造ではなく、「実際の」HTMLを返す方法を理解することです。

于 2013-01-10T23:45:53.293 に答える
0

私は最近iframeで遊んでいます(主にアプリのWebビュー用に作成されたページをカプセル化するため)。これらのhtmlファイルを/publicフォルダーに入れてiframe srcに絶対URL/file.htmlを書き込むと、正常に機能します。

于 2016-06-10T08:46:09.003 に答える