2013-07-02 145 views
0

我正在開發的項目的設計有實時聊天插件和標題上的圖像,在線/離線說。我正在嘗試處理代理在線時將放置「在線」圖像的腳本。選擇內部框架內的內容

插件的標題顯示狀態,像這樣

<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(「online」);'? – Halcyon

+0

是的,if語句中的代碼將非常簡單。我遇到的問題是if語句的條件部分的選擇器。 –

回答

3

的問題是,你根本無法訪問內容在iframe不首先抓住的是正在被iframe顯示的文檔。

post解釋這比我更好。

除非iframe的源代碼位於同一個域中(研究「跨域和JavaScript」),否則在JavaScript或jQuery中沒有實際的方法。如果他們是在同一個域,但是,你應該能夠選擇(和操作)使用以下元素:

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

post顯示了這幾個替代解決方案,以及。

+0

它工作$(「#iframeID」)。contents()。find(「。agentStatus」)。css(「background」,「red」); –

+0

很高興幫助:)祝你好運! –