2015-10-02 22 views
0

У нас есть приложение, которое мы не можем коснуться исходного кода. Вот почему я не могу вставить javascript-код в iframe. Я пытался манипулировать изображение кнопки SRC с помощью JQuery и JavaScript следующим образом:Изменение содержимого динамически созданного iframe

// there isn't id of the iframe so I used to catch by tag 
$("input:image", window.parent.frames[0].document).each(function() { 
    $(this).attr("src", "http://" + document.location.hostname + "/theme/img/buttonDownArrow.png") 
}); 

// other attempt 
document.getElementsByTagName('iframe').onload = function() { 
    $("input:image", window.parent.frames[0].document).each(function() { 
     $(this).attr("src", "http://" + document.location.hostname + "/theme/img/buttonDownArrow.png") 
    }); 
} 

, но ничего не произошло. Когда я попытался использовать код в консоли после загрузки iframe, он работает правильно. Я поместил исходный код на конец страницы, но ничего не произошло. Есть ли способ манипулировать загруженным содержимым iframe?

ответ

0

Я решил эту проблему следующим образом. Thanks Martin for the snippet

$('[data-dojo-attach-point="iframeViewer"]').ready(function() { 
     $('#form1').contents().find('input:image').each(function() { 
     $(this).attr('src', 'http://' + document.location.hostname + '/theme/img/buttonDownArrow.png'); 
     $(this).addClass('modifyComboArrowButton'); 
     $(this).hover(
     function() { 
      $(this).attr('src', 'http://' + document.location.hostname + '/theme/img/buttonDownArrow_hover.png') 
     }, 
     function() { 
      $(this).attr('src', 'http://' + document.location.hostname + '/theme/img/buttonDownArrow.png') 
     }) 
     }); 

     $('.ComboBoxDelButton').each(function() { 
     $(this).addClass('modifyComboDeleteButton'); 

     $(this).hover().addClass('modifyComboDeleteButton:hover'); 
     }); 
    }) 

Вот хитрая часть:

$('#form1').contents().find('input:image') 
0

Это может зависеть от пребывания в разных доменах. Если iframe находится в другом домене со страницы, загруженной в iframe, вы, вероятно, столкнетесь с проблемами безопасности при попытке манипулировать кодом «сверху» точно так же, как если бы вы попытались повлиять на фрейм «снизу».

+0

это на тот же домен. –

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