не все стили "срабатываеют" для 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); |
емм Слона то я и не заметил - изучаю пример (ну вы его и спрятали :) я думал это ваша подпись)
|
Цитата:
|
вот такое ощущение что как раз и не подгружаеться почемуто... контент во фрейме генериться софтом черт знает какой, посему и мучаюсь с отлавливанием всех вариантов - привязка по ид несрабатывает бо она генерируеться свободной, единственное что постоянно это всякие филдсеты, и бутоны - которые я отлавливаю и добавляю или переопределяю свои стили элементам.
|
Цитата:
тут и убъем проблему |
на локальном сервере все происходит, неполучиться дать ссылку - пробую вникать почему...
|
Цитата:
|
черт побери! Deff ты дважды прав :)
я устанавливал пойнтер на элемент фрейма правильно, после твоей подсказки и подключал стили во внутрь фрейма, а вот создавая свой див - создавал элемент в поле документа а не фрейма, и хоть он визуально вставлен был куда нужно - стили к нему не липли (хотя верхний стил док такой же) а я блин мозг сломал исща проблему... |
| Часовой пояс GMT +3, время: 02:21. |