Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2013, 01:06
Интересующийся
Отправить личное сообщение для HaseProgram Посмотреть профиль Найти все сообщения от HaseProgram
 
Регистрация: 07.03.2012
Сообщений: 28

Кодировка iframe. Скрипт с внешнего сайта.
Всем доброго времени суток. Возникла следующая проблема: при подключении скрипта с внешнего сайта (скрипт погоды) через iframe, сбивается кодировка. Сам документ в кодировке utf-8 без bom, meta кодировка тоже стоит utf-8, документ загружаемый в iframe с такой же meta и кодировкой. (скрипт подключается именно в документе, загружаемом в iframe, а не напрямую в iframe). htaccess тоже настроен на utf-8. Уже не знаю что предпринять! Заранее спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2013, 02:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Непонятно - скрипт - во фрейме ?
2. Кодировка сбивается во фрейме или на основном документе ?
3. Засуньте погоду не скриптом, а фреймом с оффсайта
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2013, 13:18
Интересующийся
Отправить личное сообщение для HaseProgram Посмотреть профиль Найти все сообщения от HaseProgram
 
Регистрация: 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 теги для задания кодировки.
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2013, 13:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Так и не увидел подробного описания проблемы. Все что было сказано, это "сбивается кодировка". Зато нытья и восклицательных знаков полно.
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2013, 13:42
Интересующийся
Отправить личное сообщение для HaseProgram Посмотреть профиль Найти все сообщения от HaseProgram
 
Регистрация: 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, то все отобразится корректно, и браузер запомнит как надо выводить (при последующей перезагрузке страницы выведет как надо),но пользователь такие манипуляции проводить не будет.

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

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. А нафига вообще фрейм? Вставить просто табличку и скрипт
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2013, 14:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

РњРѕСЃРєРІР° - это слово Москва, записанное в кодировке utf-8, но интерпретированное как кодировка ANSI. То есть скорей всего сервер выставляет заголовок Content-Type: text/html; charset=cp-1251, а он имеет преимущество перед <meta http-equiv> Смотрите в консоль браузера, вкладка Сеть
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2013, 15:11
Интересующийся
Отправить личное сообщение для HaseProgram Посмотреть профиль Найти все сообщения от HaseProgram
 
Регистрация: 07.03.2012
Сообщений: 28

Цитата:
РњРѕСЃРєРІР° - это слово Москва, записанное в кодировке utf-8, но интерпретированное как кодировка ANSI. То есть скорей всего сервер выставляет заголовок Content-Type: text/html; charset=cp-1251, а он имеет преимущество перед <meta http-equiv> Смотрите в консоль браузера, вкладка Сеть
Да, Вы абсолютно правы.
Цитата:
2. Нафига менять кодировку во фрейме по сравнению с основным Документом ?
- Делайте в той-же, что и основной документ(работа скрипта Погоды не должна зависить от кодировки..)
Я как раз прописываю кодировку, в которой основной документ, без <meta> Выдает точно такой же результат, я просто решил попробовать.
Цитата:
3. А нафига вообще фрейм? Вставить просто табличку и скрипт
Скорость загрузки повышается. Внешний сайт не всегда быстро отвечает на запрос, а загрузка моего сайта приостанавливается, пока идет запрос на внешний ресурс. Однако, как ни странно, этот способ помог. Придется мириться с переменной скоростью.

Огромное вам спасибо!
P.S. Плюсы в профиль не ставятся, просят поставить кому-нибудь другому, хотя вам я ставил достаточно давно и не последним...
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2013, 15:45
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,220

Сообщение от HaseProgram
Скорость загрузки повышается. Внешний сайт не всегда быстро отвечает на запрос, а загрузка моего сайта приостанавливается, пока идет запрос на внешний ресурс. Однако, как ни странно, этот способ помог. Придется мириться с переменной скоростью.
Дык вставьте скрипт в самый низ страницы, после таблички воткните скрипт переноса контента в нужное место
Цитата:
<script type="text/javascript">
document.getElementById('Id -Блока куда переставить').appendChild(document.getElementById('weacoblock '))
</script>

Последний раз редактировалось Deff, 10.07.2013 в 15:53.
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2013, 15:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 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 в коде выше)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить из iframe адрес всего сайта? culver Events/DOM/Window 9 29.05.2013 12:02
Нужен подобный скрипт с сайта z1odeyka Элементы интерфейса 2 28.10.2012 05:21
Не работает скрипт создаюший iframe Tvis Общие вопросы Javascript 1 17.04.2012 23:57
Кодировка внешнего JS файла - проблема в Chrome Freddis Opera, Safari и др. 3 26.07.2011 21:48
скрипт в Iframe kal1sha Events/DOM/Window 2 30.08.2010 22:22