2013-07-02 6 views
0

Дизайн проекта, над которым я работаю, имеет плагин live chat и изображение в заголовке, которое говорит онлайн/офлайн. Я пытаюсь работать над скриптом, который будет размещать «онлайн» изображение, когда агент находится в сети.Выбор содержимого внутри iframe

Заголовок плагин отображает статус, как и

<span __jx__id="___1_livehelpbutton__agentstatus" class="agentStatus" style>Offline</span> 

Я хотел бы получить innerHTML тега и использовать его в условном из, если заявление, которое, если статус " онлайн "отобразит« онлайн »изображение и в противном случае отобразит автономное изображение. Вот где я столкнулся с проблемой. У меня возникли проблемы с выбором этого тега. Когда я пробую это на консоли, я получаю [] и никаких изменений на экране.

$('.agentStatus').css('background','red'); 

Когда, как тест на странице CSS, я пытаюсь .agentStatus {background: red; }, фон становится красным.

Функция Iframe это в есть не имеет другой URL:

<iframe __jx__id="___$13__iframe src="javascript:void(document.write('<!DOCTYPE HTML PUBLIC -//W3C//DTD HTM…order-box}</style></head><body></body></html>'), document.close())" frameborder="0" style=" background-color: transparent; vertical-align: text-bottom; overflow: hidden; position: relative; width: 100%; height: 100%; margin: 0px; z-index: 999999;"> 
    #document 
     <!DOCTYPE html PUBLIC"-W3C//DTD HTML 4.0 Transitional/EN" "http:www.w3.org/TR/html4/loose.dtd" 
      <html style="overflow-y: hidden"> 
       ... 
+0

Не должно быть так просто, как '$ (« # status »). RemoveClass (« offline »). AddClass (« онлайн »);'? – Halcyon

+0

Да, код внутри оператора if будет довольно простым. У меня проблема с селектором условной части оператора if. –

ответ

3

Проблема заключается в том, что вы просто не можете получить доступ к содержимому в iframe без первого захвата документа, который отображается в iframe.

Этот post объясняет это лучше, чем я могу.

Нет фактического способа сделать это в JavaScript или jQuery, если только источник iframe не находится в одном домене (исследование «Кросс-домен и JavaScript»). Если они находятся на том же домене, однако, вы должны быть в состоянии выбрать (и манипулировать ими) элементы с помощью следующих действий:

$("#iframeID").contents().find(".agentStatus").css("background", "red"); 

Этот post показывает несколько альтернативных решений этого, а также.

+0

Сработало $ ("# iframeID"). Contents(). Find (". AgentStatus"). Css ("background", "red"); –

+0

Рад помочь :) Удачи! –

Смежные вопросы