Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2013, 19:16
Профессор
Отправить личное сообщение для Kvark Посмотреть профиль Найти все сообщения от Kvark
 
Регистрация: 02.04.2013
Сообщений: 225

не все стили "срабатываеют" для 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, а ругие нихотят
как такое может быть?
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2013, 22:34
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

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&amp;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&amp;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, 23.08.2013 в 13:07.
Ответить с цитированием
  #3 (permalink)  
Старый 23.08.2013, 04:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Deff, а че это за извращения с js-комментарием?
Чем тебе тег <script type="text/html"> не устраивает для этой цели?
Ответить с цитированием
  #4 (permalink)  
Старый 23.08.2013, 11:25
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

danik.js, хм - а изобрази со своей идеей единый подгружаемый скрипт, иной бы, devote, к примеру, поблагодарил бы

Последний раз редактировалось Deff, 23.08.2013 в 11:33.
Ответить с цитированием
  #5 (permalink)  
Старый 23.08.2013, 12:47
Профессор
Отправить личное сообщение для Kvark Посмотреть профиль Найти все сообщения от Kvark
 
Регистрация: 02.04.2013
Сообщений: 225

Сообщение от Deff Посмотреть сообщение
Kvark,
А из фрейма, в качестве проверки, считать контент - можете ?
И не проще ли делать по имени фрейма и onload ?
И var cssLink = document.createElement("link") нужно создавать на доке фрейма => var cssLink = innerDoc.createElement("link")
[/html]
Да, считать могу, правда доступ получаю только через:
var innerDoc = frames[0].document;
по другому выдает что неопределен, хотя сам фрейм по ид находит, сложность с ид что оно меняется в зависимости от страницы, единственное что этот фрейм всегда первый.

Я из выше стоящей функции добавляю фреуму онлоад и прошу вызвать эту функцию что бы она видоизменила интерфейс (мне нужно сделать его растягивающимся вместо табличной верстки), функция срабатывает, но не пойму почему стили отваливаються - если смотрю через дебагер - показывает наследованые стили от родителя (у которого тот же стилевой файл) но ненаходит соотвествие классов и ид если добавляю стиль напрямую к документу который грузиться во фрейм - тоже самое, но если гружу его вне фрейма - все ок - словно фрейм как то не дает стилям работать - но как такое может быть не пойму.

поправил создание - спасибо - так более правильно и логично, но все равно не помогло...

да, и мне без джиквери нужно обходиться - каждый кб насчету

Последний раз редактировалось Kvark, 23.08.2013 в 12:49.
Ответить с цитированием
  #6 (permalink)  
Старый 23.08.2013, 12:55
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Kvark
но не пойму почему стили отваливаються - если смотрю через дебагер - показывает наследованые стили от родителя (у которого тот же стилевой файл) но ненаходит соотвествие классов и ид
Еще раз: - тег стиля нужно создавать на документе ифрейма, а не на текущем, любые теги всовываемые в ифрейм создаём на документе ифрейма!

2- по опыту лучше ставить onload cразу на тег (Если ток вы не создаете фрейм сами) - ибо фрейм может уже загрузиться пока вы думаете ставить на него событие и тогда срабатывания не будет... Вон Вам дал живой пример, и функция обработки лучше до установки самого ифрейма

Последний раз редактировалось Deff, 23.08.2013 в 12:59.
Ответить с цитированием
  #7 (permalink)  
Старый 23.08.2013, 12:59
Профессор
Отправить личное сообщение для Kvark Посмотреть профиль Найти все сообщения от Kvark
 
Регистрация: 02.04.2013
Сообщений: 225

так яж говорю поправил это, все равно не срабатывает - первый раз с таким сталкнулся...

даже если я этот стиль добавляю в страницу (которая во фреме грузиться) несрабатывают, если перетаскиваю из фрема - все ок - бред какойто
Ответить с цитированием
  #8 (permalink)  
Старый 23.08.2013, 13:10
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Kvark,
1. Если видите - стиль в моём примере подгружен и не один!
2. Проще, когда фрейм загружен обращаться к фрейму через name
alert(name.document.body.innerHTML);
Ответить с цитированием
  #9 (permalink)  
Старый 23.08.2013, 13:20
Профессор
Отправить личное сообщение для Kvark Посмотреть профиль Найти все сообщения от Kvark
 
Регистрация: 02.04.2013
Сообщений: 225

емм Слона то я и не заметил - изучаю пример (ну вы его и спрятали я думал это ваша подпись)
Ответить с цитированием
  #10 (permalink)  
Старый 23.08.2013, 13:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Kvark
даже если я этот стиль добавляю в страницу (которая во фреме грузиться) несрабатывают, если перетаскиваю из фрема - все ок - бред какойто
Стиль, добавляемый через link - должен еще подгрузиться на страницу, проще добавить стиль тегом <style>, если контент небольшой
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
модульность для js vflash Ваши сайты и скрипты 56 04.10.2013 00:19
Обясните задержку Faab jQuery 11 15.06.2013 09:32
HTA-приложение для радио Pianorama Magneto Ваши сайты и скрипты 42 22.01.2012 08:34
После подгрузки контента через Ajax не все работает для подгруженного контента Sergey999 Events/DOM/Window 2 17.01.2012 22:21
php-ajax-mysql indiga AJAX и COMET 6 23.03.2011 12:58