| 
	| 
	
	| 
		
	| 
			
			 
			
				10.07.2013, 01:06
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 07.03.2012 
						Сообщений: 28
					 
		
 |  |  
	| 
				Кодировка iframe. Скрипт с внешнего сайта.
			 Всем доброго времени суток. Возникла следующая проблема: при подключении скрипта с внешнего сайта (скрипт погоды) через iframe, сбивается кодировка. Сам документ в кодировке utf-8 без bom, meta кодировка тоже стоит utf-8, документ загружаемый в iframe с такой же meta и кодировкой. (скрипт подключается именно в документе, загружаемом в iframe, а не напрямую в iframe). htaccess тоже настроен на utf-8. Уже не знаю что предпринять! Заранее спасибо за помощь! |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 02:23
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| Непонятно - скрипт - во фрейме ?2. Кодировка сбивается во фрейме или на основном документе ?
 3. Засуньте погоду не скриптом, а фреймом с оффсайта
 |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 13:18
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 07.03.2012 
						Сообщений: 28
					 
		
 |  |  
	| На сайте погоды я сгенерировал код для информера. Среди обычного html в коде, есть подключаемый скрипт 
<script language="javascript" src="http://infrm.weather.ua/js/2970/1/1ru.js"></script>
 
Весь код я запихнул в weather.html и подключаю его на сайте:
 
<iframe src="weather.html" width="200" height="400" align="absmiddle" frameborder="no" scrolling="no"></iframe>
 
В wether.html  я добавил meta теги для задания кодировки. |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 13:29
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 11.09.2010 
						Сообщений: 8,804
					 
		
 |  |  
	| Так и не увидел подробного описания проблемы. Все что было сказано, это "сбивается кодировка". Зато нытья и восклицательных знаков полно. |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 13:42
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 07.03.2012 
						Сообщений: 28
					 
		
 |  |  
	|  
Так ок сейчас попробую подробно. 
На сайте weather.html я взял код для информера:
 
<script language="javascript" src="http://infrm.weather.ua/js/27.85.2845.2873.88.87.2940.51671.13443.94.2962.2970/1/1ru.js"></script>
<div id="weacoblock">
<table cellpadding="0" cellspacing="0"  id="hov" >
 <tr onmouseover="this.className='hovered';" onmouseout="this.className='old_class';">
  <td class="cll">Москва</td>
  <td class="clc"><script type="text/javascript">document.write(i_cloud_image27)</script></td>
  <td  class="clr"><script type="text/javascript">document.write(i_t27)</script></td>
  </tr>
</table>
</div>
 
Этот код я скопировал в файл weather.html, добавив <head>, куда прописал <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> и засунул тег <script>, и этот файл я подключаю на странице моего сайта:
 
<iframe src="weather.html" width="200" height="400" align="absmiddle" frameborder="no" scrolling="no"></iframe>
 
При загрузке страницы iframe отдает сущности (РњРѕСЃРєРІР°). Если на странице поменять вручную кодировку на cp-1251, а потом опять на utf-8, то все отобразится корректно, и браузер запомнит как надо выводить (при последующей перезагрузке страницы выведет как надо),но пользователь такие манипуляции проводить не будет.
 
Вроде так подробно.
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 14:12
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| HaseProgram,
  
	
 
	| Сообщение от HaseProgram |  
	| Этот код я скопировал в файл weather.html, добавив <head>, куда прописал <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> и засунул тег <script>, и этот файл я подключаю на странице моего сайта: |  
	
 1. Мало прописать <meta http-equiv="Content-Type" content="text/html; charset=utf-8">.  Дык а сервер отдаёт данную страницу в какой кодировке ?
 
2. Нафига менять кодировку во фрейме по сравнению с основным Документом ?  
- Делайте в той-же, что и основной документ(работа скрипта Погоды не должна зависить от кодировки..)
 
3. А нафига вообще фрейм? Вставить просто табличку и скрипт |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 14:21
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 11.09.2010 
						Сообщений: 8,804
					 
		
 |  |  
	| РњРѕСЃРєРІР° - это слово Москва, записанное в кодировке utf-8, но интерпретированное как кодировка ANSI. То есть скорей всего сервер выставляет заголовок Content-Type: text/html; charset=cp-1251, а он имеет преимущество перед <meta http-equiv> Смотрите в консоль браузера, вкладка Сеть |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 15:11
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 07.03.2012 
						Сообщений: 28
					 
		
 |  |  
	| 
	
 
	| Цитата: |  
	| РњРѕСЃРєРІР° - это слово Москва, записанное в кодировке utf-8, но интерпретированное как кодировка ANSI. То есть скорей всего сервер выставляет заголовок Content-Type: text/html; charset=cp-1251, а он имеет преимущество перед <meta http-equiv> Смотрите в консоль браузера, вкладка Сеть |  
	
 Да, Вы абсолютно правы.
 
	
 
	| Цитата: |  
	| 2. Нафига менять кодировку во фрейме по сравнению с основным Документом ? - Делайте в той-же, что и основной документ(работа скрипта Погоды не должна зависить от кодировки..)
 |  
	
 Я как раз прописываю кодировку, в которой основной документ, без <meta> Выдает точно такой же результат, я просто решил попробовать.
 
	
 
	| Цитата: |  
	| 3. А нафига вообще фрейм? Вставить просто табличку и скрипт |  
	
 Скорость загрузки повышается. Внешний сайт не всегда быстро отвечает на запрос, а загрузка моего сайта приостанавливается, пока идет запрос на внешний ресурс. Однако, как ни странно, этот способ помог. Придется мириться с переменной скоростью.
 
Огромное вам спасибо!  
P.S. Плюсы в профиль не ставятся, просят поставить кому-нибудь другому, хотя вам я ставил достаточно давно и не последним...
			
			
	
			
			
			
			
			
				  |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 15:45
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| 
	
 
	| Сообщение от HaseProgram |  
	| Скорость загрузки повышается. Внешний сайт не всегда быстро отвечает на запрос, а загрузка моего сайта приостанавливается, пока идет запрос на внешний ресурс. Однако, как ни странно, этот способ помог. Придется мириться с переменной скоростью. |  
	
 Дык вставьте скрипт в самый низ страницы, после таблички воткните скрипт переноса контента в нужное место
 
	
 
	| Цитата: |  
	| <script type="text/javascript"> document.getElementById('Id -Блока куда переставить').appendChild(document.getElementById('weacoblock  '))
 </script>
 |  
	
			 Последний раз редактировалось Deff, 10.07.2013 в 15:53.
 |  |  
	| 
		
	| 
			
			 
			
				10.07.2013, 15:47
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 11.09.2010 
						Сообщений: 8,804
					 
		
 |  |  
	| Можно динамически подключать скрипт , а по окончанию загрузки скрипта вывести нужную информацию. Таким образом загрузка скрипта не будет блокировать загрузку страницы: 
<div id="weather">
    <span id="weather-icon"></span>
    <span id="weather-temp"></span>
</div>
<script>
(function(){
    var script = document.createElement('script');
    script.onload = function() {
        document.getElementById('weather-icon').innerHTML = i_cloud_image27;
        document.getElementById('weather-temp').innerHTML = i_t27;
    };
    script.src = '//domain.com/path/to/script.js';
    document.body.appendChild(script);
})()
</script>
А можно сделать проще. Оставить разметку где нужно вывести погоду, а скрипт опустить в конец страницы. А в следующем скрипте вставить значения переменных в разметку (смотри script.onload в коде выше) |  |  
 
 
 
 |  |