2011-02-09 28 views
1

我想在我的页面(page1)上放置一个图像,该图像是另一个页面(page2)的链接,但我希望显示的图像是其中一个两个可能的图像,基于page2的内容。如何根据另一页中的内容更改图像链接

在这种情况下,Page2是一个报告当前状态的wiki页面。如果没有问题需要报告,页面1上的图像将呈绿色。如果列出了问题,图像将变为红色。

我的计划是使用html注释标签在我的wiki页面上嵌入<!--STATUSRED--><!--STATUSGREEN-->。然后我想我可以使用JavaScript,Jquery或类似的东西来检查我的评论的存在,并相应地改变页面1上的图像。我只是不确定如何完全做到这一点。

我也接受其他想法。无论我提出什么解决方案,维基用户都必须更改,而不需要用户更改page1(这不是维基的一部分)。

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页面上我只是改变了DIV id属性的问题是 'statusGreen' 或' statusRed”像这样:

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

,我想改变形象得到了 'statusImage' ID:

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

如何确定第2页此状态?这是在服务器上完成的吗?您可以指向第1页上的单个图像,并让page2脚本将其更改为红色或绿色(例如,用适当的颜色替换服务器上的文件) – 2011-02-09 16:33:27

+0

第2页上报告的状态由wiki用户手动更新。他们将不得不手动更改评论标记,然后脚本将不得不检查此标记。 – JeffJ 2011-02-09 16:52:07

回答

0

这是因为你得到所有的wiki页面的内容,只检查一个字的存在,反正挺浪费的,这里是如何做到这一点:

<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(); 
}); 

在wiki.html确保您status包裹的状态码在容器作为ID:

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

为了使它更容易一点,你可以只添加一个参数(如果可能的话,这取决于你如何的控制力维基)

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

而且具有wiki页面返回正确的图像直接,如果请求中包含参数“图像”

+0

我对页面2(wiki)的控制不如页面1那么多。我宁愿让开关逻辑在那里发生。 – JeffJ 2011-02-09 17:59:46

相关问题