2016-10-11 2 views
0

Hallo Ich möchte Daten in Iframe auf Cross-Domain AutoFill. Ich habe einen Code, aber es funktioniert nicht. Bitte hilf mir.wie AutoFill Daten auf iFrame von Javascript

<!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> 

die Eingänge gefüllt:

Haben Sie jede mögliche Art und Weise, dies zu tun.

+2

nee .. nicht, wenn das Dokument in der iframe auf der gleichen Domäne ist. Google Cross Ursprungs-Scripting. –

+0

haben Sie keine Möglichkeit? – Hobo

+0

Was ist Ihr "legitimer" Benutzerfall hier? – nogad

Antwort

1

Dies wird eine Verletzung der CORS sein.

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

Es gibt einige Abhilfen zu diesem. Sie müssen die postMessage-API verwenden. Ihr übergeordnetes Fenster müsste JavaScript-Ereignisse an den iFrame senden, der über einen Ereignis-Listener verfügen und darauf reagieren müsste.

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

+1

Nein, es ist kein CORS-Problem. Zugriff auf iFrame ist ein ganz anderes Sicherheitsproblem – charlietfl

+0

Wenn es auf der gleichen Domäne, Protokoll, Port, dann haben Sie Recht. Dann würden Sie etwas tun wie document.frames [0] .forms [0] – sethasaurus

+1

Sie können CORS nicht verwenden, um den iFrame-Zugriff domänenübergreifend zuzulassen. Es ist für domänenübergreifende Anforderungen, die unterschiedlich sind – charlietfl