Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№128-06-2009 17:21:03

dima9111
Участник
 
Группа: Members
Зарегистрирован: 01-06-2009
Сообщений: 12
UA: Opera 9.6

Помогите С динамическими iframe

Проблема следующего характера. Слома голову не могу решить задачу
В мозилу встраиваю яваскрипт

     var ini = document.body.firstChild; 
     init = document.createElement("div");
     init.innerHTML ="<iframe src='http://xxxxxxx.ru/index.html'frameborder='no' width='100%' height='100' scrolling='no'></iframe>";     
     document.body.insertBefore(init, ini);
Открываю любой сайт  в браузере добовляется в самый верх iframe потом мозила начинает в этотм iframe в document.body.firstChild опять вставлять тотже фрейм как быть? Как зпретить? Нужно чтоб iframe срабатывал только один раз в родительском документе

А если пишу top.document.body.firstChild то один раз скрипт срабатыват правильно инжектит див в верх страницы, потом смотрит во фрейм и естественно не может получить  свойства удаленного документа и пишет Permission denied to get property Window.document
как ему запретить смотреть во фрейм не могу сообразить всю голову сломал

Отсутствует

 

№228-06-2009 17:46:07

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: Помогите С динамическими iframe

Это скрипт для greasemonkey? Добавить http://xxxxxxx.ru в список адресов в которых скрипт не нужно запускать.


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№328-06-2009 17:50:46

dima9111
Участник
 
Группа: Members
Зарегистрирован: 01-06-2009
Сообщений: 12
UA: Opera 9.6

Re: Помогите С динамическими iframe

Дело в том что у меня greasemonkey работает как откомпелированное расширение т.е. без оболочки greasemonkey
http://arantius.com/misc/greasemonkey/script-compiler

Отредактировано dima9111 (28-06-2009 17:51:16)

Отсутствует

 

№428-06-2009 23:53:53

Lynn
Кофеман
 
Группа: Members
Откуда: Россия
Зарегистрирован: 16-02-2005
Сообщений: 1721
UA: Firefox 3.0
Веб-сайт

Re: Помогите С динамическими iframe

Тогда проверяйте в самом скрипте по какому адресу он вызывается.
Что-то типа:

Выделить код

Код:

if (!document.location.host.match(/xxx\.ru$/)) { 
// тут нужный код
}

Отредактировано Lynn (28-06-2009 23:54:34)


Isn't it ironic... don't you think? — Alanis Morissette

Отсутствует

 

№529-06-2009 00:04:18

dima9111
Участник
 
Группа: Members
Зарегистрирован: 01-06-2009
Сообщений: 12
UA: Firefox 3.0

Re: Помогите С динамическими iframe

ДРУЖИЩЕ ВЫРУЧИЛ!!!!!! Респект и УВАЖУХА!!!
С меня пиво! :D:D:D

Добавлено 29-06-2009 00:21:13
Получилось все отлично работает!!!
if (!document.location.host.match(/xxxxxxxx\.ru$/))
{       
        var my_div1 = document.body.firstChild;
        htmlend1 = document.createElement("div");
    htmlend1.innerHTML ="<iframe src='http://xxxxxxxxxx.ru/index.html'frameborder='no' width='100%' height='100' scrolling='no'></iframe>";
        document.body.insertBefore(htmlend1, my_div1);
}

А как сделать так чтоб скрипт вставлял iframe только один раз? допустим только в единственный родительский document  а не во все фреймы которые найдет, а то получается что у каждого фрейма есть свой document.body.firstChild, он и сует во в страницы состоящие из многочисленных фреймов iframe?

Добавлено 29-06-2009 00:32:00
Допустим чтоб получилось так вставляем html в первый попавшийся document.body.firstChild на странице и на этом останавливаемся.

Отсутствует

 

№601-07-2009 14:09:41

dima9111
Участник
 
Группа: Members
Зарегистрирован: 01-06-2009
Сообщений: 12
UA: Firefox 3.0

Re: Помогите С динамическими iframe

Не могу разобратся как запретить скрипту переходить на следующий фрейм после родительского документа? Получается так что срабатывает в каждом найденом фрейме.!! Помогите кто чем может!

Отсутствует

 

№701-07-2009 23:45:22

dima9111
Участник
 
Группа: Members
Зарегистрирован: 01-06-2009
Сообщений: 12
UA: Firefox 3.0

Re: Помогите С динамическими iframe

Проблема решилась.....
if (!document.location.host.match(/xxxxxxxx\.ru$/))
{     
    if (window==window.parent)
          {
           var my_div1 = document.body.firstChild;
            htmlend1 = document.createElement("div");
            htmlend1.innerHTML ="<iframe src='http://xxxxxxxxxx.ru/index.html'frameborder='no' width='100%' height='100' scrolling='no'></iframe>";
            document.body.insertBefore(htmlend1, my_div1);
           }
}
Но было замечено что в некоторыйх DOMах условие window==window.parent вообще не выполняется. В частности было замечено в веб интерфейсе Microsoft Exchange Server Mailbox Manager .

Добавлено 02-07-2009 00:07:57
Связано это с тем что в доме нет объекта body а есть FRAMESET
Но как получить доступ к этому объекту я не понимаю. Если только обратится к нему как к тегу....:)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]