25

ページに を作成したい<iframe>のですが、後で追加しsrcます。属性なしで iframe を作成するとsrc、一部のブラウザーで現在のページが読み込まれます。src空白の iframe をロードするために設定する正しい値は何ですか?

私が見た答えは次のとおりです。

  • about:blank
  • javascript:false
  • javascript:void(0)
  • javascript:"";
  • 空白のページへの URL

明確な勝者はいますか?そうでない場合、トレードオフは何ですか?

IE6 以降のすべてのブラウザで、HTTPS URL に対する混合コンテンツの警告、戻るボタン、履歴、またはリロードの異常を表示したくありません。

4

10 に答える 10

10

すべてのブラウザーが "about:blank" をサポートしているかどうかわからないので、その場合は独自の空白ページを使用します。

別のアイデア: src だけでなく、javascript を使用して iframe 全体を追加してみませんか?

于 2010-11-26T10:52:59.463 に答える
7

「空の」iframe (iframe shim など) を作成するときの標準的な方法は、src をjavascript:false;. これは、iframe shim を作成するほとんどの JavaScript ライブラリ (YUI のオーバーレイなど) で使用される方法です。

于 2010-11-26T10:55:17.753 に答える
6

フォーム送信のターゲットとして iframe を使用することを計画していることを明確にするコメントを確認してください。

を返すサーバー上の空のドキュメントを使用します204 no content

回避する

  • IE および HTTPS モードでの「混合コンテンツ」警告
  • javascript:クライアントがプロトコルを理解していないことによる不要なエラー
  • および他のエキゾチックなシェナニガン。

また、有効な HTML です。

では、追加のリクエストが生成された場合はどうなるでしょうか? キャッシュ ヘッダーを適切に設定すると、クライアントごとに 1 つの要求しかありません。

于 2010-11-26T11:01:13.347 に答える
6

どうですか

about:blank
于 2010-11-26T10:54:05.593 に答える
3

javascript:false:
IE10 および FF (Linux の v23 でチェック済み) では、コンテンツとして「false」が表示されます。

javascript:void(0)&& javascript:;:
IE は、iframe に「Web ページを表示できません」というエラーを表示します。また、有効な URL の src を に設定するjavascript:void(0)と、ページが空白になりません。

about:blank:
すべてのブラウザーで動作しますが、IE 9 はサーバーにパス "null" で要求を送信します。それでも最善の策IMO

http://jsfiddle.net/eybDj/1を チェックアウトhttp://jsfiddle.net/sv_in/gRU3V/チェックアウトして、JS による動的更新で iframe src がどのように変化するかを確認します

于 2013-08-21T06:25:20.900 に答える
1

javascript:false最新のブラウザで動作します。

私が見たのは、愚かなスパイダーjavascript:falseがページとしてロードしようとしたときにのみ「失敗」することです。

解決策: 愚かなクモをブロックします。

于 2011-09-04T14:52:47.037 に答える
1

この質問に投稿したように:空の iframe src は有効ですか? src=属性を完全に省略しても問題ないようです。

于 2012-01-11T17:24:49.197 に答える
0

はい、私は古いスレッドを復活させていることを知っています。私を訴えなさい。答えに興味があります。

トリガーがフォーム送信であるためにIFrameを動的に作成できない理由がわかりません。これはあなたが望むことを正確に行いませんか?

<html>
<head>
<script type="text/javascript">
function setIFrame(elemName, target, width, height) {
    document.getElementById(elemName).innerHTML="<iframe width="+width+" height="+height+" src='"+target+"'></iframe>";
}
</script>
</head>
<body>
<div id="iframe" style="width:400px; height:200px"></div>
<form onSubmit="setIFrame('iframe', 'http://www.google.com', 400, 200); return false;">
<input type="submit" value="Set IFrame"/>
</form>
</body>
</html>
于 2011-03-03T18:39:38.477 に答える
0

IMO: src を入力しないと、ページは検証されません。しかし、それについてです。src="" を入れると、サーバーは多くの 404 エラーをログに記録します。

「損害」ほど悪いことはありません。では、iframe 自体を使用することは実際には間違っていないのでしょうか。

°-

于 2010-11-26T10:52:43.940 に答える