не все стили "срабатываеют" для ifraime?
3 часа бьюсь не могу понять, есть страница, на ней создаеться фрейм, я в него добавляю свои стили так:
var innerDoc = frames[0].document; var cssLink = document.createElement("link") cssLink.id = "xtheme"; cssLink.href = "style.css"; cssLink.rel = "stylesheet"; cssLink.type = "text/css"; innerDoc.getElementsByTagName('body')[0].appendChild(cssLink); и странно что срабатывают скажем такие как p, span, а ругие нихотят :-? как такое может быть? |
Kvark,
А из фрейма, в качестве проверки, считать контент - можете ? И не проще ли делать по имени фрейма и onload ? И var cssLink = document.createElement("link") нужно создавать на доке фрейма => var cssLink = innerDoc.createElement("link") <script type="text/javascript"> function content (){ /*==123==; <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <meta name="google-site-verification" content="v9Kpfc51FlFjvXEBq1t0zJH__JPx58kMVJWNOYFScLI" /> <meta name="yandex-verification" content="6a5a572f1bb19704" /> <title>Единый форум поддержки</title> <!--/noindex--> <link rel="stylesheet" type="text/css" href="http://st1.bbcorp.ru/style/Mybb_Bend/Mybb_Bend.css" /> <!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="http://st1.bbcorp.ru/style/style_fix.css" /><![endif]--> <!--[if IE 7]><link rel="stylesheet" type="text/css" href="http://st1.bbcorp.ru/style/style_fix7.css" /><![endif]--> <link rel="stylesheet" type="text/css" href="http://st1.bbcorp.ru/style/extra.26.css" /> </head> <div id="pun_wrap"> <div id="pun"> <div id="pun-index" class="punbb"> <div id="html-header"> </div> <div id="pun-title" class="section"> <table id="title-logo-table" cellspacing="0"> <tbody id="title-logo-tbody"> <tr id="title-logo-tr"> <td id="title-logo-tdl" class="title-logo-tdl"> <h1 class="title-logo"><span>Единый форум поддержки</span></h1> </td> <td id="title-logo-tdr" class="title-logo-tdr"></td> </tr> </tbody> </table> </div> <div id="pun-navlinks" class="section"> <h2><span>Меню навигации</span></h2> <ul class="container"> <li id="navindex"><a href="http://forum.mybb.ru/"><span>Форум</span></a></li> <li id="navuserlist"><a href="http://forum.mybb.ru/userlist.php" rel="nofollow"><span>Участники</span></a></li> <li id="navrules"><a href="http://forum.mybb.ru/misc.php?action=rules" rel="nofollow"><span>Правила</span></a></li> <li id="navsearch"><a href="http://forum.mybb.ru/search.php"><span>Поиск</span></a></li> <li id="navprofile"><a href="http://forum.mybb.ru/profile.php?id=22787"><span>Профиль</span></a></li> <li id="navpm"><a href="http://forum.mybb.ru/messages.php"><span>Сообщения</span></a></li> <li id="navlogout"><a href="http://forum.mybb.ru/login.php?action=out&id=22787"><span>Выход</span></a></li> </ul> </div> <div id="pun-ulinks" class="section"> <h2><span>Пользовательские ссылки</span></h2> <ul class="container"> <li class="item1"><a href="http://forum.mybb.ru/search.php?action=show_new">Новые сообщения</a></li> <li class="item2"><a href="http://forum.mybb.ru/search.php?action=show_24h">Активные темы</a></li> <li class="item3"><a href="http://forum.mybb.ru/search.php?action=show_unanswered">Темы без ответов</a></li> <li class="item4"><a href="http://forum.mybb.ru/search.php?action=show_user&user_id=22787">Мои сообщения</a></li> <li class="item5"><a href="http://forum.mybb.ru/search.php?action=show_subscriptions">Подписка</a></li> <li class="item6"><a href="http://forum.mybb.ru/misc.php?action=markread">Все прочитано</a></li> </ul> </div> <div id="pun-status" class="section"> <h2><span>Информация о пользователе</span></h2> <p class="container"> <span class="item1">Привет, <strong>Deff</strong>.</span> <span class="item2">Ваш последний визит: <strong>Сегодня 19:55:23</strong>.</span> <span class="item3" style="float:right">В фонде форума: <strong>1664.43</strong> кредитов. <a href="/foundation.php">Помочь форуму</a>.</span> </p> </div> <div id="pun-break1" class="divider"><hr /></div> <div id="pun-crumbs1" class="section"> <p class="container crumbs"><strong>Вы здесь</strong> » <span>Единый форум поддержки</span></p> </div> <div id="pun-break2" class="divider"><hr /></div> <div id="pun-main" class="main"> <h1><span>Форум</span></h1> <div id="pun-category1" class="category"> <h2><div class="catleft"><!-- --></div><span>Информационный раздел</span><div class="catright"><!-- --></div></h2> <div class="container"> <table cellspacing="0" summary="Список форумов в категории: Информационный раздел"> <thead> <tr> <th class="tcl" scope="col">Форум</th> <th class="tc2" scope="col">Тем</th> <th class="tc3" scope="col">Сообщений</th> <th class="tcr" scope="col">Последнее сообщение</th> </tr> </thead> </table> </div> </div> </div> <div class="section"> <div id="tieser-bottom" class="container" align="center"> </div> </div> <div id="pun-break3" class="divider"><hr /></div> <div id="pun-crumbs2" class="section"> <p class="container crumbs"><strong>Вы здесь</strong> » <span>Единый форум поддержки</span></p> </div> <div id="pun-break4" class="divider"><hr /></div> <div id="pun-about" class="section"> <p class="container"> <span class="item1" style="padding-left:0"><a title="фотохостинг" href="http://uploads.ru/" target="_blank">фотохостинг</a> • <a title="создать форум" href="http://mybb.ru/" target="_blank">создать форум</a></span> </p> </div> <!-- pun_debug --> </div> </div> </div> ==123==;*/ } content = content.toString().split('==123==;')[1]; function Fload (fram){ var frameDoc = fram.contentWindow.document; var div = frameDoc.createElement("div"); div.innerHTML = content; frameDoc.body.appendChild(div); var script = frameDoc.createElement("script"); script.src = "http://yandex.st/jquery/1.4.4/jquery.min.js"; frameDoc.body.appendChild(script); var script2 = frameDoc.createElement("script"); script2.text ="alert('Cообщение из фрейма: #pun-main.html =' +$('#pun-main').html())"; alert(fram0.document.body.innerHTML); setTimeout(function (){frameDoc.body.appendChild(script2);},1000); } </script> <iframe name="fram0" onload="Fload (this)" width=100% height=700></iframe> |
Deff, а че это за извращения с js-комментарием?
Чем тебе тег <script type="text/html"> не устраивает для этой цели? |
danik.js, хм - а изобрази со своей идеей единый подгружаемый скрипт, иной бы, devote, к примеру, поблагодарил бы
|
Цитата:
var innerDoc = frames[0].document; по другому выдает что неопределен, хотя сам фрейм по ид находит, сложность с ид что оно меняется в зависимости от страницы, единственное что этот фрейм всегда первый. Я из выше стоящей функции добавляю фреуму онлоад и прошу вызвать эту функцию что бы она видоизменила интерфейс (мне нужно сделать его растягивающимся вместо табличной верстки), функция срабатывает, но не пойму почему стили отваливаються - если смотрю через дебагер - показывает наследованые стили от родителя (у которого тот же стилевой файл) но ненаходит соотвествие классов и ид :( если добавляю стиль напрямую к документу который грузиться во фрейм - тоже самое, но если гружу его вне фрейма - все ок - словно фрейм как то не дает стилям работать - но как такое может быть не пойму. поправил создание - спасибо - так более правильно и логично, но все равно не помогло... да, и мне без джиквери нужно обходиться - каждый кб насчету :) |
Цитата:
2- по опыту лучше ставить onload cразу на тег (Если ток вы не создаете фрейм сами) - ибо фрейм может уже загрузиться пока вы думаете ставить на него событие и тогда срабатывания не будет... Вон Вам дал живой пример, и функция обработки лучше до установки самого ифрейма |
так яж говорю поправил это, все равно не срабатывает - первый раз с таким сталкнулся...
даже если я этот стиль добавляю в страницу (которая во фреме грузиться) несрабатывают, если перетаскиваю из фрема - все ок - бред какойто :( |
Kvark,
1. Если видите - стиль в моём примере подгружен и не один! 2. Проще, когда фрейм загружен обращаться к фрейму через name alert(name.document.body.innerHTML); |
емм Слона то я и не заметил - изучаю пример (ну вы его и спрятали :) я думал это ваша подпись)
|
Цитата:
|
Часовой пояс GMT +3, время: 02:16. |