ページに_<iframe>
_を作成しますが、後でsrc
を追加します。 src
属性のないiframeを作成すると、一部のブラウザーで現在のページが読み込まれます。 src
に設定する正しい値は何ですか?空白のiframeをロードするだけですか?
私が見た答えは:
about:blank
_javascript:false
_javascript:void(0)
javascript:"";
_明確な勝者はいますか?そうでない場合、トレードオフは何ですか?
IE6以降のすべてのブラウザーで、HTTPSのURLに対する混合コンテンツの警告や、戻るボタン、履歴、またはリロードの奇妙さを持たないようにしたいと思います。
「空の」iframeを作成するとき(iframeシムなど)の標準的なアプローチは、srcをjavascript:false;
として設定することです。これは、iframeシムを作成するほとんどのJavaScriptライブラリで使用される方法です(YUIのオーバーレイなど)。
すべてのブラウザが "about:blank"をサポートしているかどうかは不明なので、その場合は自分の空白ページを使用します。
別のアイデア:srcだけでなく、JavaScriptを使用してiframe全体を追加してみませんか?
コメントを再送信して、フォーム送信のターゲットとしてiframeを使用することを計画していることを明確にします。
私は204 no content
を送り返すサーバーの空のドキュメントを使用します。
それは避けます
javascript:
プロトコルを理解していないため、不要なエラーこれも有効なHTMLです。
では、追加のリクエストを生成するとどうなるでしょうか。キャッシングヘッダーを正しく設定すると、クライアントごとに要求が1つだけになります。
どうですか
about:blank
_javascript:false
_:
IE10およびFF(Linuxのv23でチェック)は、コンテンツとして「false」を表示します。
javascript:void(0)
&& _javascript:;
_:
IEはiframeに「ウェブページを表示できません」というエラーを表示します。また、srcを有効なURLからjavascript:void(0)
に設定すると、ページが空白になりません。
_about:blank
_:
IE 9を除くすべてのブラウザで機能します。パスが「null」のサーバーにリクエストを送信します。それでも最善のIMO
チェックアウト http://jsfiddle.net/eybDj/1
チェックアウト http://jsfiddle.net/sv_in/gRU3V/ JSを使用した動的更新でiframe srcがどのように変化するかを確認します
javascript:false
は最新のブラウザで動作します。
私が見たところ、これは、ダムスパイダーがjavascript:false
をページとして読み込もうとしたときにのみ「失敗」します。
解決策:ダムスパイダーをブロックしてください。
私がこの質問に投稿したように、 空のiframe srcは有効ですか? の場合、src=
属性を完全に省略しても問題ありません。
私はこのコード行に遭遇します:
iframe.setAttribute("src", "javascript:false");
同様に。削除したかったjavascript:URL
。
ウェブハイパーテキストアプリケーションテクノロジーワーキンググループからこのメモを見つけました[2019年10月2日更新]
Iframeまたはフレーム要素のその他の手順は次のとおりです。
要素にsrc属性が指定されていない場合、またはその値が空の文字列である場合は、urlを "about:blank"というURLにします。
IMO:srcを指定しない場合、ページは検証されません。しかしそれについてです。 src = ""を指定すると、サーバーは多くの404エラーを記録します。
「ダメージ」のように本当に悪いことは何もありません。しかし、それでは実際にiframe自体を使用することは間違っていませんか?
°-
はい、古いスレッドを復活させています。私を訴え。答えに興味があります。
トリガーがフォーム送信であるために動的に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>