2016-05-30 5 views
1

Я уже около 2 дней пытался сделать что-то, что я не могу понять как сделать. Дело в том, что я настраиваю пользовательскую консоль Pentaho (это какое-то веб-приложение, развернутое на tomcat, в котором много фреймов внутри).Заблокирован кадр с источником «http: // localhost: 8080» от доступа к кадру с источником «http://pentaho5XXX.com»

html, который я настраиваю, находится внутри iframe (Позволяет называть iframe «A») навигационным горизонтальным меню, которое имеет следующий iframe справа (Позволяет называть этот iframe «B»). Каждая отдельная ссылка на навигатор и часть iframe «B» загружаются в iframe «B», и весь URL-адрес указывает на размещенный сервер с доменом www.pentaho5XXX.com.

Я выполняю все свои тесты на локальном хосте: 8080. Моя проблема заключается в том, что, когда я пытаюсь получить доступ к переменной внутри «B» Iframe (в IFRAME, где URL загружаются), консоль дает мне следующую ошибку:

Uncaught SecurityError: Failed to execute 'alert' on 'Window': Blocked a frame with origin " http://localhost:8080 " from accessing a frame with origin " http://pentaho5XXX.com " Protocols, domains, and ports must match.

Я понимаю, что это потому, что Я пытаюсь получить доступ к DOM URL-адреса, размещенного в другом домене. Моя проблема возникает, когда я пытаюсь сделать это с помощью веб-страницы localhost: 8080, и iframe не загружает страницу (когда я помещаю свой ip: 8080/mypage, он frezes и ничего не делает, и когда я ставлю localhost: 8080 он загружает мне пустую страницу), и консоль навигатора не дает мне никаких ошибок.

Я проверил тот же URL-адрес на новой вкладке, и он работает с обеими ссылками, поэтому я не знаю, почему это происходит.

Другое дело, что я может делать неправильно, что я пытаюсь получить доступ к переменной йот и изменить ГКЗ IFrame «B» в том же фрейма («B»)

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

ответ

0

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

+0

Что вы называете «внешним iframe» - это любой регулярный фрейм, который находится внутри HTML? –

+1

это фрейм с src attibute, который относится к другому доменному имени, чем ваш. – Meshredded

+0

Небольшой эскиз, чтобы сделать его немного яснее: - Pentaho HTML ----> Мой кадр "А" (по горизонтали Nav ссылки и т.д.) -----------> Моя рамка «B», который находится внутри «A» (несколько ссылок) Что я делаю от «B» iframe меняет src «B». Приступая к родительскому с помощью jquery, делая что-то вроде этого '$ (« # iframe », parent.document) .attr ("src", mylink); 'которые обычно работают. Что я хочу сделать, так это после изменения src, измените некоторые свойства css на странице внутри iframe «B». Это может быть невозможно: l –

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

  • Нет связанных вопросов^_^