2015-04-01 6 views
2

Я отправляю сообщение iFrame. IFrame возвращает ответ как логическое. Мне нужно уловить ответ, когда ответ приходит в родительское окно из iFrame. Мой код не работает. Любая идея на этом?Захват ответа iFrame после получения ответа

плавающего фрейма

<iframe id="opIFrame" src="https://localhost:9443/oauth2/session" > 

</iframe> 

Я отправляю сообщение в плавающем фрейме периодически

var iframe = document.getElementById("opIFrame"); 

    setInterval(function(){ 

     message ='test' ; 
     console.log('Request From RP: ' + message); 

     iframe.contentWindow.postMessage(message,"https://localhost:9443/oauth2/session"); 

    },6000); 

Что мне нужно сделать, это получить ответ на плавающем фрейме периодически. До сих пор работает код. Я добавил eventlistener для iframe, как показано ниже.

iframe.addEventListener("message",test,false); 
    function test(event){ 
     alert("test"); 
    } 

Но не стреляя периодически

+0

Touffy, я добавил код. Пожалуйста, предложите мне идею. – Hasanthi

+0

Хм. Так что он срабатывает хотя бы один раз или совсем? Любая ошибка? – Touffy

+0

Нет, он не стреляет хотя бы один раз. Ошибка также не появляется. – Hasanthi

ответ

0

Это было на самом деле очень просто: вы добавили слушатель на IFRAME (как элемент DOM родительского окна), а не на окнах Iframe в. Просто исправьте это, и оно работает:

iframe.contentWindow.addEventListener("message",test,false); 
+0

No Touffy не работает. Я тоже это пробовал. Слушатель событий не стреляет. – Hasanthi

+0

Он работал, когда я пробовал, используя именно ваш код только с приведенной выше модификацией и другим значением для домена. – Touffy

+0

И если это как-то связано с доменом, тогда вы должны увидеть сообщение об ошибке в консоли, сообщающую вам, что вам не разрешено что-то делать. Содержимое iframe является HTML-документом, верно? – Touffy

Смежные вопросы