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

Сделать ссылки внутри iframe открытыми в новом окне

Я пытаюсь отобразить карту внутри iframe, у которой есть игла, которая при наведении курсора показывает некоторую информацию об определенной компании, дело в том, что когда вы нажимаете ссылку, страница открывается внутри iframe, что портит впечатление, поэтому мне было интересно Можно ли сделать так, чтобы ссылки внутри iframe открывались в новом окне, а не с помощью jquery или чего-то подобного?

код у меня есть банкомат

http://www.jsfiddle.net/rkd59/1/

Изменить: как минимум захватить щелчок внутри iframe, чтобы я мог изменить размер iframe


Ответы:


1

Вам понадобится какой-то открытый API, чтобы сделать это должным образом, а Eniro не предоставляет его в соответствии с эта страница (на шведском языке).

Вместо этого я рекомендую вам использовать API Google Maps v3. Я сделал пример на jsFiddle, который похож на этот Эниро.

Я с радостью помогу вам с этим, так что просто спросите!

09.01.2011
  • Ну, это намного лучше, чем я мог себе представить 10.01.2011
  • @Breezer: Рад слышать! Я обещаю, что вы получите огромное удовольствие от изучения Google Maps API — это невероятно мощный инструмент! :) 10.01.2011
  • Ссылка @SteveFenton не работает. перенаправление на главную страницу. пожалуйста обновите. 06.03.2014

  • 2

    Поскольку эта карта загружена внутри iFrame, невозможно запустить какие-либо прослушиватели событий javascript для ссылок, а также невозможно изменить html.

    03.01.2011

    3

    Вы не можете (или это чрезвычайно сделать) заставить события внутри iframe влиять на родительскую страницу. Это необходимо для предотвращения атак XSS или межсайтового скриптинга. Сказав это, если сайт в iframe находится в вашем собственном домене и вы хотите настроить очень хитрые идентификаторы сеанса ajax и php, возможно, вы могли бы заставить что-то работать , но даже тогда я не уверен. И я не знаю, будет ли это дырой в безопасности, может быть, кто-то еще может поговорить об этом. Возможно, это будет выглядеть так:

    1. главная страница устанавливает идентификатор сеанса и передает его URL-адресу iframe через переменную get
    2. iframe берет информацию о щелчке и отправляет ее в переменную сеанса через ajax-вызов скрипта на сервере.
    3. Затем главная страница считывает (как?) файл cookie сеанса и вносит изменения в зависимости от его значения.

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

    08.01.2011
  • в том же домене это на самом деле довольно просто. У вас просто есть скрипт/функция, расположенная в родительском документе, а затем вызываете ее с помощью parent.functionname() из дочернего фрейма... Но поскольку это будет в том же домене, который вы будет иметь доступ к коду обоих документов.. 08.01.2011
  • должна быть хотя бы возможность каким-то образом зафиксировать щелчок в пределах размера iframe, не обязательно по ссылке, просто щелчок в пределах Δx, Δy 08.01.2011
  • @Breezer, ваши комментарии имеют в виду своего рода наложение поверх iframe, из-за чего он выглядит так, как будто вы нажимаете на элементы iframe, но на самом деле вы нажимаете на наложение. Но, конечно, тогда ни один из кликов не будет регистрироваться на веб-странице во фрейме. 09.01.2011
  • да в этом и проблема =/ 09.01.2011

  • 4

    Чтобы сделать всплывающую ссылку в новом окне, вы обычно используете target="_blank" как таковой:

    <a href="http://www.yahoo.com" target="_blank">Go to Yahoo</a>
    

    Однако это будет работать только в том случае, если вы можете изменить код, который вы показываете в iFrame.

    03.01.2011
  • В качестве примечания, атрибут target в настоящее время устарел в HTML 4.01 и, следовательно, XHTML v1.x, но он будет возвращен в HTML5. 09.01.2011

  • 5

    Существует частичное решение.

    Вы можете добавить абсолютно позиционированный тег DIV поверх IFRAME и вместо этого фиксировать клики по нему. См. пример здесь, заштрихованный 20% альфа-красным цветом.

    http://www.jsfiddle.net/rkd59/6/

    Однако это означает, что карта работает в «режиме только для чтения», и хотя вы можете зафиксировать событие щелчка, вы не будете знать, по какой ссылке щелкнул пользователь.

    09.01.2011

    6

    Пожалуйста, попробуйте следующее:

    <script>
    x=document.querySelectorAll("a");
    for(i=0;i<x.length;i++)
    {
       x[i].setAttribute("target","_blank");
    }
    </script>
    

    При этом все ссылки открываются в новом фрейме.

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

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

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

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

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

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

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

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