Изменение стиля содержимого iframe через JS

Тема в разделе "JavaScript", создана пользователем Vdakimir, 14 мар 2018.

  1. Vdakimir

    Vdakimir Постоялец

    Регистр.:
    15 фев 2016
    Сообщения:
    85
    Симпатии:
    11
    Прошу помощи в решении следующей задачи:

    Нужно изменить стиль отображаемого на странице iframe, а именно некоторых классов. В iframe отображается Google карта созданная в сервисе Мои карты.

    Из того что нарыл это скрипты вида:

    Код:
        $('#googlemap').load(function(){
        $(this).contents().find(".i4ewOd-pzNkMb-haAclf").css("background-color","#AAAAAA !important");
    });
    или

    Код:
        $('#googlemap').load(function() {
        var css = '<style type="text/css">.i4ewOd-pzNkMb-haAclf{background:#AAAAAA !important};</style>';
        $('#googlemap').contents().find("head").append(css);
    });
    Но никак не смог добиться нужного результата, видимо что-то делаю не так.

    Сайт с блоком который нужно изменить - http://el.crystalcorp.ru/#googlemap

    Относительно скриптов возник следующий вопрос: Куда ставить скрипт? Я его устанавливал после самого iframe. Сайт на Joomla с обработчиком скриптов.

    Помогите пожалуйста с решением.
     
  2. denverkurt

    denverkurt Denve®

    Заблокирован
    Регистр.:
    23 дек 2013
    Сообщения:
    729
    Симпатии:
    417
    во первых, надо оборачивать ваш js код в $(document).ready, если
    HTML:
    $(document).ready(function(){
        $('#googlemap').load(function(){
            $(this).contents().find(".i4ewOd-pzNkMb-haAclf").css("background-color","#AAAAAA !important");
        });
    });
    но даже после этого я сомневаюсь что будет работать то, что вы задумали
    .load - это метод из раздела ajax, где первым атрибутом задается урл загружаемого контента
    https://jquery-docs.ru/load/
     
  3. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    456
    Симпатии:
    1.162
    Вы не можете изменять сайт другом домене. Нельзя.
    Политика безопасности.

    А если вы вставите сайт к себе, где пользователь авторизован и через js например имя и фамилию возьмёте или от имени пользователя будете формы отправлять? Или ещё что нибудь измените на чужом сайте?

    Чтобы изменить гугл карты ищите api этих карт
     
    dana77 нравится это.
  4. Freeman08

    Freeman08 Создатель

    Регистр.:
    27 сен 2008
    Сообщения:
    28
    Симпатии:
    6
    Есть пара способов выкрутиться, но кажется в вашем случае это не нужно. У меня нет большого опыта работы с google картми, но мне известно, что на них можно делать "скины", вот пример: https://mapstyle.withgoogle.com/

    Выбираем "More options" и там можно очень подробно описать/поменять стиль чуть ли не для каждого контрола. После чего по нажатию на finish вы получите готовый js/json код для встраивания. Мы вообщем так для одной андроид приложухи из гугл карту - мультяшную карту сделали.

    Дальше встроить к себе уже помойму совсем не сложно