связь между iframe и страницей его части через javascript в ie8 - PullRequest
0 голосов
/ 12 января 2012

Я видел много подобных вопросов, но не нашел ничего, что могло бы помочь в моей конкретной ситуации, поэтому я прошу прощения, если этот вопрос кажется повторяющимся.

У меня есть сайт www.foo.com и в нем есть iframe. Когда информация нажимается на тег на foo.com, вызывается функция javascript, которая передает новое изображение в iframe для показа пользователю. Связь между iframe и его «родителем», кажется, работает нормально во всех браузерах, за исключением случайных страниц IE8. Я получаю следующее сообщение об ошибке «доступ запрещен», и браузер указывает на активированную функцию. Ниже приведен фрагмент кода с сайта, чтобы увидеть, как он работает.

iframe:

<iframe scrolling="no" src="foo.com/bar" id="ifram" name="ifram"></iframe>

тег:

JavaScript:

if($(this).val() == '242'){
    document.getElementById('ifram').style.border='0px';
    document.getElementById('ifram').style.background = "url('../product_images/uploaded_images/Flag.jpg')";
    document.frames.ifram.document.body.style.backgroundColor="transparent"; 

Это всего лишь фрагмент кода и не включает весь процесс вызова ajax для получения изображения, но не был уверен, является ли ajax частью проблемы. Я получаю неопределенную ошибку в Firefox, но функция все еще срабатывает. Я предполагаю, что мне просто нужно использовать window.frames для Firefox.

В целом, любая помощь по решению этой проблемы будет принята с благодарностью. Мне интересно, есть ли проблема безопасности, связанная с настройками браузера, или она связана с тем, как я ее кодировал.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Вам не нужно использовать document.frames до document.frames.ifram.document.body.style.backgroundColor = "#ccc";. Просто ifram.document.body.style.backgroundColor = "#ccc"; подойдет.

0 голосов
/ 12 января 2012

Важно отметить, что если ваш iframe tag находится на странице, расположенной по адресу http://www.foo.com, но iframe указывает на http://foo.com, это считается нарушением песочницы, и вам будет отказано в доступе. Убедитесь, что вы указываете на тот же домен, на котором находится ваша страница. Вы также можете использовать относительные URL-адреса в теге iFrame src, поэтому вы можете изменить его на src="bar.php" (без какой-либо информации о домене).

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