1

私が取り組んでいるプロジェクトのデザインには、ライブ チャット プラグインと、オンライン/オフラインを示すヘッダーの画像があります。エージェントがオンラインのときに「オンライン」イメージを配置するスクリプトを作成しようとしています。

プラグインの見出しには、次のようにステータスが表示されます

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

タグの innerHTML を取得し、if ステートメントの条件で使用したいと思います。ステータスが「オンライン」の場合は「オンライン」の画像が表示され、それ以外の場合はオフラインの画像が表示されます。そこで問題にぶつかります。このタグの選択に問題があります。コンソールでこれを試すと、[] が表示され、画面に変化はありません。

$('.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">
                 ...
4

1 に答える 1

3

iframe問題は、によって表示されているドキュメントを最初に取得しないと、 のコンテンツにアクセスできないことですiframe

この投稿は、これを私ができるよりもよく説明しています。

のソースが同じドメインにない限り、JavaScript または jQuery でこれを行う実際の方法はありませんiframe(「クロスドメインと JavaScript」を調べてください)。ただし、それらが同じドメインにある場合は、次を使用して要素を選択 (および操作) できるはずです。

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

この投稿では、これに対するいくつかの代替ソリューションも示しています。

于 2013-07-02T17:00:21.737 に答える