2016-10-11 10 views
0

こんにちはクロスドメインのiframeにデータを自動入力したいのですが、コードはありますが動作しません。私を助けてください。JavaScriptでiframeのデータを自動入力する方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="en"> 
<head> 
<title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

<script type="text/javascript"> 
function autoFill() { 
var f=fm.document.forms[0]; 
f.form-control.value='Zanne'; 
f.submit(); 
} 
</script> 

</head> 
<body> 
<div> 
<button type="button" onclick="autoFill();">autoFill</button> 
</div> 
<iframe name="fm" id="fm" src="url.com" width="100&#37;" height="100%"></iframe> 
</body> 
</html> 

入力満たさ:

これを行うにはどのような方法を持っています。

+2

いや...ないのiframe内のドキュメントが同じドメイン上にある場合を除きます。 googleクロスオリジンスクリプト。 –

+0

どうもありませんか? – Hobo

+0

あなたの「正当な」ユーザケースは何ですか? – nogad

答えて

1

これはCORS違反となります。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

これにはいくつかの回避策があります。 postMessage APIを使用する必要があります。あなたの親ウィンドウはJavaScriptイベントをiFrameに送信する必要があります。これはイベントリスナーを必要とし、それに反応する必要があります。

https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage

+1

いいえ、それはCORSの問題ではありません。 iFrameへのアクセスは全く異なるセキュリティ上の問題です – charlietfl

+0

同じドメイン、プロトコル、ポート上にある場合は、それが正しいとします。 次に、document.frames [0] .forms [0] – sethasaurus

+1

のような処理を行います。CORSを使用してiFrameアクセスのクロスドメインを許可することはできません。異なるドメイン間要求のためのものです – charlietfl

関連する問題