Страницы: 1
Проблема следующего характера. Слома голову не могу решить задачу
В мозилу встраиваю яваскрипт
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
как ему запретить смотреть во фрейм не могу сообразить всю голову сломал
Отсутствует
Это скрипт для greasemonkey? Добавить http://xxxxxxx.ru в список адресов в которых скрипт не нужно запускать.
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Дело в том что у меня greasemonkey работает как откомпелированное расширение т.е. без оболочки greasemonkey
http://arantius.com/misc/greasemonkey/script-compiler
Отредактировано dima9111 (28-06-2009 17:51:16)
Отсутствует
Тогда проверяйте в самом скрипте по какому адресу он вызывается.
Что-то типа:
Отредактировано Lynn (28-06-2009 23:54:34)
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
ДРУЖИЩЕ ВЫРУЧИЛ!!!!!! Респект и УВАЖУХА!!!
С меня пиво!
Добавлено 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 на странице и на этом останавливаемся.
Отсутствует
Не могу разобратся как запретить скрипту переходить на следующий фрейм после родительского документа? Получается так что срабатывает в каждом найденом фрейме.!! Помогите кто чем может!
Отсутствует
Проблема решилась.....
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
Но как получить доступ к этому объекту я не понимаю. Если только обратится к нему как к тегу....
Отсутствует
Страницы: 1