-2

まず、私はもうプログラマーではありません...それをやってから何年も経ちましたが、それでもVBAと古い学校のHTMLだけでした。

私がやりたいのは、「状態」に応じて、サイトに別の画像を表示することです。たとえば、サイトはhttp://w2zxl.hevener.com/で、ページの下部には、HAM ラジオ ログブックと私の現在のステータスをほぼリアルタイムで読み込むスクリプトがあります。オンエア中の場合は、「オンエア」という小さな画像が表示され、オンエア中の周波数と作業中のモードが表示されます。ただし、オフエア中は、その小さな画像が消えて表示されますなし。

私がやりたいのは、「何もない」を置き換える小さな画像を作成することです。つまり、私が Off Air なら、何も表示しないのではなく、 "Off Air"の画像を表示したいと考えています。

以下に提供するコードを指定して、これを実行できる If/Then/Else ステートメントはありますか?

以下のコード:

<!-- HRDLOG.net script start --><center>
<div id="hrdlog-oa"> </div>
<div id="hrdlog">www.hrdlog.net</div>
<script type="text/javascript" language="javascript" src="http://www.hrdlog.net/hrdlog.js"></script>
<script type="text/javascript" language="javascript">// <![CDATA[
var ohrdlog = new HrdLog('W2ZXL');
setInterval('ohrdlog.LoadOnAir()', 5000);
ohrdlog.LoadLastQso(10);
// ]]></script>
<img src="http://www.hrdlog.net/callplate.aspx?user=W2ZXL" alt="W2ZXL CallPlate" /></center><!-- HRDLOG.net script stop -->
4

2 に答える 2

-1

純粋な HTML ではそれを行うことはできず、これを解決するには 2 つの方法がありました

  1. マークアップ言語が好きなら、 if else タグを持つ xsl を使用できます
  2. Javascriptを使用して、オンエアされているかどうか、オンエアの画像をチェックし、オンエアされていないかどうかを確認します

あなたにとってより良い方法は、あなたのサイトのいくつかのJavaScriptコードを変更することです..

ohrdlog.LoadOnAir を上書きする必要があります。その後、再び 2 つの方法があります。

  1. http://www.hrdlog.net/hrdlog.jsソースコードを変更し、LoadOnAir 関数を書き直します
  2. ロード後にスクリプトタグを挿入して LoadOnAir 関数を上書きhttp://www.hrdlog.net/hrdlog.js

別のドメインアドレスからロードするスクリプトを変更できないと思うので、番号2を選択します...この部分の後にこのコードを挿入する必要があります:

<script type="text/javascript" language="javascript" src="http://www.hrdlog.net/hrdlog.js"></script>

そして、HrdLog.prototype.ShowOffAir 関数でオフエア画像のリンクを見つけることができます。今、私はそれをhttp://2.bp.blogspot.com/_Dr3YNV7OXvw/TGNNf561yQI/AAAAAAABIk/-E2MB4jLP_o/s400/Off-Air.jpgに向けています。 :

<script type="text/javascript" language="javascript">
HrdLog.prototype.ShowOffAir = function() {
    return '[<img src="https://i.stack.imgur.com/WEr1B.jpg" height="33" width="65" />][2]';
}
HrdLog.prototype.LoadOnAir = function() {
    var t = this;
    var async = new Async();
    async.complete = function(status, statusText, responseText, responseXML, obj) {
        if (status == 200) {
            txt = '';

            var xmldoc = responseXML;
            var onairdoc = xmldoc.getElementsByTagName('OnAir');
            if (onairdoc.length == 1) {
                onair = onairdoc.item(0);
                if (onair.getElementsByTagName('oa_QRZ').length > 0) {
                    txt += '<img src="http://www.hrdlog.net/images/onair.gif" height="33" width="65" /><br/>';
                    txt += '<font size="+1">' + onair.getElementsByTagName('oa_QRZ')[0].childNodes[0].nodeValue + ' is on air</font><br/>';
                    txt += '<b>';
                    txt += FormatNumber(onair.getElementsByTagName('oa_Frequency')[0].childNodes[0].nodeValue) + '&nbsp;';
                    try {
                        txt += onair.getElementsByTagName('oa_Mode')[0].childNodes[0].nodeValue + '</b><br/>';
                        txt += onair.getElementsByTagName('oa_Radio')[0].childNodes[0].nodeValue + '<br/><br/>';
                    } catch (e) { }
                    //txt += onair.getElementsByTagName('oa_Status')[0].childNodes[0].nodeValue + '<br/>';
                }else{
                    txt += t.ShowOffAir();
                }
            }else{
                txt += t.ShowOffAir();
            }

            element = document.getElementById('hrdlog-oa');
            if (element != null) {
                element.innerHTML = txt;
            }

        } else {
            alert('Error\n' + statusText);
        }
    }

    if ((new Date().getTime() - this._lastLoadOnAir.getTime()) > 14500) {
        this._lastLoadOnAir = new Date();
        async.req(this._host + 'hrdlog.aspx?onair=' + this._qrz, this);
    }
}
</script>
于 2013-05-10T20:47:13.127 に答える