Nano Hash - криптовалюты, майнинг, программирование

Встраивание Google Maps IFRAME

Кажется, я не могу заставить это работать, хотя я делал это в прошлом, успешно...

Я пытаюсь встроить iframe Google Maps на веб-страницу. iframe не загружается, показывая сообщение об ошибке, говорящее:

Chrome в консоли: отказался отображать документ, поскольку отображение запрещено X-Frame-Options.

IE9, на странице: этот контент не может отображаться во фрейме

Шаги, которые я предпринимаю, следующие:

  • Зайти на карты гугл в браузере
  • Иди туда, куда я хочу встроить
  • Щелкните значок ссылки
  • Скопируйте и вставьте ссылку, представленную под меткой «Вставить HTML для встраивания на веб-сайт».

Я использую ASP.NET MVC4, работающий локально в IIS Express, но то же самое происходит на сервере в IIS7.

Как ни странно, когда я просто создаю локальный файл HTML и открываю его из файловой системы, у меня нет проблемы.

При вставке кода в jsfiddle он работает.

Нужно ли мне настраивать IIS или добавлять что-то в мои заголовки или что-то в этом роде?

Фрагмент HTML

<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.be/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Kortrijk,+Belgium&amp;aq=0&amp;oq=kortrijk,+bel&amp;sll=50.802805,3.279785&amp;sspn=0.351067,0.617294&amp;t=h&amp;ie=UTF8&amp;hq=&amp;hnear=Kortrijk,+West+Flanders,+Vlaams+Gewest&amp;ll=50.802897,3.280106&amp;spn=0.350496,0.617294&amp;z=11&amp;iwloc=A&amp;output=embed"></iframe>

Ответы:


1

Благодаря острому и проницательному взгляду моего коллеги мы нашли проблему.

Во-первых, кажется, что он появляется только на бельгийских картах, http://maps.google.be, (афаик , очевидно), а не на http://maps.google.com.

При вызове содержимого IFRAME Google перенаправляет содержимое IFRAME на тот же URL-адрес, но с добавлением ?wmode=transparent.

Браузер не допускает использование нескольких '?' в URL-адресе, поэтому действие прерывается.

Чинить:

Используйте тот же URL-адрес, сгенерированный Google Maps, но просто добавьте следующее:

&amp;wmode=transparent
13.11.2012

2

У вас точно есть параметр &amp;output=embed querystring в источнике iframe? Если вы не включите это, Google не отправит правильные заголовки ответов X-Frame-Options, и вы получите описанную вами ошибку.

Можете ли вы показать фрагмент представления MVC, в котором отображается карта?

12.11.2012
  • да, абсолютно уверен, я добавил это... Я обновлю свой вопрос фрагментом 13.11.2012

  • 3

    Я не мог получить какие-либо различные предложения в Интернете для встраивания ссылки на карту Google в iframe.

    В итоге я использовал API карт Google, сгенерировав исходный код, заполнив поля по адресу:

    http://www.map-embed.com/

    и изменение полученного кода в соответствии с моими целями.

    Вы можете использовать приведенную выше ссылку, чтобы сгенерировать код для своей собственной карты, а затем, при желании, использовать мой код с долготой и широтой, созданными вышеуказанным веб-сайтом, скопированным в мой код. Вы также можете вставить свой собственный html в «контент» ниже, независимо от того, что производит указанный выше веб-сайт.

    <?php
    
    // IE won't work with percentage height and FF won't work with em units.
    // Simple code here assumes if  browser isn't IE, then is FF; 
    // And I don't care about other browsers.
    //
    
    $height =  "$browser" == 'ie' ? '25em' : '99%' ;
    
    $width  =  "$browser" == 'ie' ? '99%'  : '99%' ;
    
    echo <<<XXXEODXXX
    
      <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script>
    
      <div                    style="height:$height; width:$width; overflow:hidden;">
    
        <div id="gmap_canvas" style="height:$height; width:$width;">
    
        </div>
    
        <style>
    
          #gmap_canvas 
    
            img
    
            {
              max-width:none!important; 
              background:none!important
            } 
    
        </style>
    
      </div>
    
      <script type="text/javascript">
    
        google.maps.event.addDomListener               ( window, 'load', init_map );
    
        function init_map ()
    
          { var myOptions = { zoom:12, center:new google.maps.LatLng ( 41.1889495, -104.1781593 ), mapTypeId:google.maps.MapTypeId.ROADMAP };
    
            map           = new google.maps.Map        ( document.getElementById ( "gmap_canvas" ), myOptions );
    
            marker        = new google.maps.Marker     ( {map: map, position: new google.maps.LatLng( 41.1889495, -104.1781593 ) } );
    
            infowindow    = new google.maps.InfoWindow ( { content:"<b>Biz Name</b><br/>Biz Street Address<br/>Biz City, State Zip<br/>Biz Phone" } );
    
            google.maps.event.addListener              ( marker, "click", function () { infowindow.open ( map, marker ); } );
    
            infowindow.open                            ( map, marker );
          }
    
      </script>
    
    XXXEODXXX;
    

    ?>

    20.11.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..