Страницы: 1
Есть такой код. В IE 7 - 8 и в Firefox все работает отлично, за исключением IE 6 там кросс доменные фреймы запрещены политикой безопасности.
f (!window.parent.inject)
{
if(window == window.top)
{
if(document.body != null)
{
if (!document.location.host.match(/xxxxxx\.xxxxx\.ru$/))
{
var my_div = document.body.firstChild;
htmlend = document.createElement("div");
htmlend.innerHTML ="<iframe src='http://xxxxxxxxx.ru/index.html' id='frId' name='inject' frameborder='no' width='100%' height='100' scrolling='no'></iframe>";
document.body.insertBefore(htmlend, my_div);
}
}
}
}
Решение должно существовать информации мало о подобных эксперементов некоторые говорят что можно у фрейма поменять свойство document.domain или loaction/ Но у меня так и не получилось.
Помогите пожалуйста разобратся!!!
Есть простой скрипт
htmlend = null;
var my_div = document.body.firstChild;
htmlend = document.createElement("div");
document.body.insertBefore(htmlend, my_div);
Запускаю его по Firefox все работает нормально, но в IE работает неправильно, ошибка заключается в слудующем.
Есть некторые сайты на которых каждый раз когда щелкаем по ссылкам добовляется новый DIV. К примеру на одноклассниках, щелкаем по ссылкам и DIvы добовляются добесконечности. Всю голову сломал не могу разобратся почему так?
Проблема решилась.....
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
Но как получить доступ к этому объекту я не понимаю. Если только обратится к нему как к тегу....:)
Не могу разобратся как запретить скрипту переходить на следующий фрейм после родительского документа? Получается так что срабатывает в каждом найденом фрейме.!! Помогите кто чем может!
ДРУЖИЩЕ ВЫРУЧИЛ!!!!!! Респект и УВАЖУХА!!!
С меня пиво! :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 на странице и на этом останавливаемся.
Дело в том что у меня greasemonkey работает как откомпелированное расширение т.е. без оболочки greasemonkey
http://arantius.com/misc/greasemonkey/script-compiler
Проблема следующего характера. Слома голову не могу решить задачу
В мозилу встраиваю яваскрипт
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
как ему запретить смотреть во фрейм не могу сообразить всю голову сломал
Каким образом омжно проверить доступна ли открываемая страницав браузере? т.е. нужно обработаь hhtp ответ --- если он 200 то сообщение страница доступна, если иной то месаджбокс страница недоступна....
Немогу сообразить
Каким способом лучше добавть ява код от гугл аналитик в firefox
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-9464160-1");
pageTracker._trackPageview();
} catch(err) {}</script>
п?
dima9111, можно попробовать http://arantius.com/misc/greasemonkey/script-compiler
Дружище выручил!!!! Респект и уважуха!!!
Ещё вопрос по теме, если я установил Greasemonkey. Под него можно запустить любой яваскрипт можно ли конвртировать Greasemonkey в независимый плагин?
Добрый день ! Хочу сделать плагин который будет собирать статистику по активности браузера на основе движка cnstat (думаю всем известный движок). В плагин требуется установить код который предоставляет cnstat
<!-- CNStats begin -->
<span id="cnstats_span"><script type="text/javascript">
cnsd=document;
cnst=escape(cnsd.title);
cnst=cnst.replace(/\+/g,'%2B');
cnsa=navigator.appName;
cnsn=(cnsa.substring(0,2)=='Mi')?0:1;
cnss=screen;cnspx=(cnsn==0)?cnss.colorDepth:cnss.pixelDepth;
if (cnsd.getElementById)
{
var i=cnsd.createElement('img');
var amp=String.fromCharCode(38);
var iurl='http://stat/cnt-gif1x1.php?';
iurl+='e='+cnss.width+'.'+cnss.height;
iurl+=amp+'d='+cnspx+amp+'r='+escape(cnsd.referrer);
iurl+=amp+'p='+escape(cnsd.location)+amp+'t='+cnst;
i.src=iurl;
i.width=1;i.height=1;i.border=0;
cnsd.getElementById('cnstats_span').appendChild(i);
}
</script></span><noscript><img src="http://stat/cnt-gif1x1.php?468&c=0" width="1" height="1" border="0" alt="" /></noscript>
<!-
Страницы: 1