2011-02-09 2 views
1

別のページ(page2)へのリンクである自分のページ(page1)にイメージを配置したいが、表示されるイメージをページ2の内容に基づいて2つの可能な画像別のページのコンテンツに基づいてイメージリンクを変更する方法

Page2この場合のPage2は、現在のステータスを報告するwikiページです。報告するのに問題がなければ、ページ1のイメージは緑色になります。リストに問題がある場合、画像は赤色になります。

達成するための私の計画は、<!--STATUSRED-->または<!--STATUSGREEN-->のいずれかをhtmlコメントタグを使用して私のwikiページに埋め込むことです。それから、javascriptやJqueryなどを使ってコメントの有無を確認し、それに応じてページ1の画像を変更することができたと考えました。私はちょうどこれを行う方法を正確にはわかりません。

私は他のアイデアにもオープンしています。どのような解決策が出ても、wikiユーザーはpage1(wikiの一部ではない)を変更する必要なく簡単に変更することができます。

UPDATE:

私はついにやってしまった何を:

$(document).ready(function() { 
    statusCheck(); 
    setInterval(statusCheck,300000); 
} 

function statusCheck() { 
    $.ajax({ 
     type: "GET", 
     url: "path/to/wiki/MainPage.ashx", 
     dataType: "html", 
     cache: false, 
     success: function(html) { 
      $('#statusImage').attr('src', function() { 
       if ($(html).find("#statusGreen").length) 
       { 
        return '/images/green.gif'; 
       } 
       else 
       { 
        return '/images/red.gif'; 
       } 
      });   
     }, 
     error: function(request,status, error) { 
      $('#statusImage').attr('src', '/images/red.gif'); 
     }  
    }); 
} 

をして、wikiページに、私は単に 'statusGreen' または 'のいずれかに問題になっているのdivのid属性を変更します「そうのように:

<div id="statusGreen"> 
<font size="5" color="green">No issues to report.</font> 
</div> 

と私は変更したい画像が取得する 'statusRed statusImage' IDを:

<img id="statusImage" width="95" height="95" border="0" /> 
+0

この状態を判断PAGE2どのように?それはサーバー上で行われていますか?ページ1の1つのイメージをポイントして、ページ2のスクリプトで赤または緑に変更することができます(サーバー上のファイルを適切な色に置き換えるなど) –

+0

ページ2で報告されるステータスは、wikiユーザーによって手動で更新されます。彼らは手動でコメントタグを変更する必要があり、スクリプトはこのタグをチェックする必要があります。 – JeffJ

答えて

0

が含まれている場合は、とにかく、単一の単語が存在するかどうかをチェックするために、すべてのWikiページのコンテンツを取得するように正しいイメージが直接これは非常に無駄である、ここでそれを行う方法は次のとおりです。

wiki.htmlで
<div id="hidden_container" style="display: none;"></div> 
<img src="" id="wikistatus"/> 

function set_status() { 
    var status_image = 'images/green.gif'; 
    $('#hidden_container').empty(); 
    $('#hidden_container').load('path/to/wiki.html #status', function() { 
    var status = $('#hidden_container').text(); 
    var is_green = status.indexOf('<!--STATUSGREEN-->'); 
    if(is_green === false) status_image = 'images/red.gif'; 
    $('#wikistatus').attr('src', status_image); 
    setTimeout('set_status();', 5000); // execute again in 5 seconds 
    }); 
} 

$(document).ready(function() { 
    set_status(); 
}); 

あなたがIDとしてstatusで容器にステータスコードをラップしていることを確認します

<div id="status"><!--STATUSGREEN--></div> 
+0

上記のやり方と非常によく似ています。私はこれが無駄であるというあなたのコメントに同意しますが、それを行うためのより良い方法はありません。 – JeffJ

0

あなただけの(それが可能だ場合は、ウィキの上に持っているどのくらいの制御に応じて、)

<a href="page2"><img src="page2?image" alt="" /></a>

をPARAMを追加し、wikiページを返す可能性があり、それは少し簡単にするためにリクエストはPARAM「画像」

+0

私はpage1と同様にpage2(wiki)をあまり制御できません。私はスイッチングロジックがそこで起こるのを好むでしょう。 – JeffJ

関連する問題