2015-05-18 3 views
0
<div id="result"></div> 
<button id="send">Request</button> 

JavaScript:GET запрос IFrame

var button = document.getElementById("send"), 
    div = document.getElementById('result'); 

button.addEventListener('click', function() { 
    var result = createIframe("f", "/lorem.txt"); 
    console.log(result.contentWindow); 
    div.innerHTML = result.contentWindow.document.body.innerHTML; 
}); 

function createIframe(name, src, debug) { 
    var tmpElem = document.createElement('div'); 

    tmpElem.innerHTML = '<iframe name="' + name + '" id="' + name + '" src="' + src + '">'; 
    var iframe = tmpElem.firstChild; 
    iframe.style.display = 'none'; 

    document.body.appendChild(iframe); 

    return iframe; 
} 

я на локальном сервере файл lorem.txt. С скрытым фреймом я пытаюсь запросить содержимое этого файла и вставить его в <div id="result"></div>. Но по какой-то причине он не вставлен. В чем может быть проблема?

ответ

1

Я считаю, что элементы с идентификаторами "send" и "result", соответственно, не существует в данный момент, когда ваш Javascript код работает, поэтому click событие не будет приложен к button. Вы должны убедиться, что эти элементы существуют, когда вы пытаетесь получить их по своим идентификаторам или присоединяете к ним события.

Решение: убедитесь, что ваш код запущен после загрузки документа или поместил соответствующий тег скрипта ниже html, который вы описали в своем вопросе.

+0

JS-код, завернутый в window.onload - ничего не изменилось. – Aleksandr

+1

Если у вас есть это в начале вашего кода: console.log (document.getElementById («send»)), что он печатает в консоли браузера? –

+0

«

« – Aleksandr