Изменение цвета фона div в iframe с родительской страницы не работает - PullRequest
2 голосов
/ 05 ноября 2019

У меня есть это на <head> родительской страницы:

<script type="text/javascript">
    $(document).ready(function () {
        $('#innerframe').load(function () {
            $(this).contents().find($(".TitleBG")).css("background-color", "red");
        });
    });
</script>

<iframe src="/HomePage.aspx" onload="GetAlerts();" id="innerframe"></iframe>

Затем у меня есть пример div на странице .aspx iframe:

<div class="col-md-12">
    <div class="col-md-1 TitleBG">Drive</div>
    <div class="col-md-3 TitleBG">Name</div>
    <div class="col-md-1 TitleBG">Type</div>
    <div class="col-md-1 TitleBG">Format</div>
    <div class="col-md-2 TitleBG">Free Space</div>
    <div class="col-md-2 TitleBG">Available Space</div>
    <div class="col-md-2 TitleBG">Drive Size</div>
</div>

Я хочу заменить свойство background-color для div, у которых есть класс 'TitleBG', но моя попытка не работает (выше jquery)?

Это работает, когдаЯ выполняю $(".TitleBG").css("background-color", "red"); для элементов на родительской странице.

Ответы [ 5 ]

2 голосов
/ 05 ноября 2019

Вместо

find($(".TitleBG"))

используйте

find(".TitleBG")
1 голос
/ 05 ноября 2019

Похоже, это устарело:

$('#innerframe').load(function () {

Так что я должен использовать это:

$('#innerframe').on('load', function () {

Как после 1.8это (исходный код) больше не действителен

Также:

Вместо

find ($ (". TitleBG")) используйте

find (". TitleBG")

Как пользователь Wiizl заявляет, это другая проблема.

0 голосов
/ 05 ноября 2019

Попробуйте действительный идентификатор вместо this и измените поиск на .find(".TitleBG")

<script type="text/javascript">
    $(document).ready(function () {
        $('#innerframe').load(function () {
            $('#innerframe').contents().find(".TitleBG").css("background-color", "red");
        });
    });
</script>
0 голосов
/ 05 ноября 2019

<script type="text/javascript">
    $(document).ready(function () {
        $('#innerframe').load(function () {
            var iFrameDOM = $("iframe#innerframe").contents();

            iFrameDOM.find(".TitleBG").css("background-color", "red");
        });
    });
</script

Однако это не будет работать для сторонних фреймов.

0 голосов
/ 05 ноября 2019

Вы не можете изменить страницу iframe. Это было бы слишком просто.

Вы должны рассмотреть возможность вызова AJAX и создать элементы DOM: https://api.jquery.com/jquery.ajax/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...