Я пытаюсь загрузить форму внутри iFrame, а затем войти в нее с помощью JavaScript, два для циклов для выбора полей входа. У меня возникают проблемы с доступом к элементу формы в дереве DOM. Строка var form = doc.forms[0];
не дает мне никаких проблем, но когда я пытаюсь использовать такие функции, как form.action
, это говорит Uncaught TypeError: Cannot set property 'action' of undefined
. Что я делаю не так?Доступ к форме внутри iFrame
<HTML>
<head>
</head>
<body>
<iframe height="300px" id="carrierPage" name="carrierPage" src="" width="100%"></iframe>
<script type="text/javascript">
function autoLogin(username, password, url){
var iframe = document.getElementById("carrierPage");;
iframe.src = url;
var doc = iframe.contentWindow.document;
var form = doc.forms[0];
form.action = url;
form.target = "carrierPage";
for(var i = 0; i < form.length; i++)
if(form.elements[i].type == "text"){
form.elements[i].value = username;
i = form.length + 1;
}
for(var i = 0; i < form.length; i++)
if(form.elements[i].type == "password"){
form.elements[i].value = password;
i = form.length + 1;
}
form.submit(); */
}
autoLogin("someUserName", "somePassword", "https://someURL.com/login");
</script>
</body>
</HTML>
И протокол, домен и порт же в IFRAME, как в родительской страницы, в противном случае вы нарушение того же происхождения политика – adeneo
уаг док = iframe.contentDocument; – bjb568
Предполагая, что проблема с исходной политикой еще одна возможность может быть межсерверной проблемой contentWindow и contentDocument. –