使用JQuery替换ASP.NET中的部分图像URL

时间:2010-06-29 19:54:28

标签: asp.net jquery css regex url

我有一个脚本,可以将图像网址转换为路径,并且可以在主节点导航上淡入淡出图像。下面的脚本给了我:

http://localhost/Bar/App_Themes/main/images/Beers-Faded.gif

一旦我更深入地浏览一个节点,它会将应用程序路径添加到URL并且函数失败:

http://localhost/bar/Bar/App_Themes/main/images/Beers-Faded.gif

jQuery的:

$(function ()  {
   $('img.fade').each(function ()  {
    var $$ = $(this);
    var target = $$.css('background-image').replace(/^url|["]|[\)\(]/g, '');
    $$.wrap('<span style="position:relative;"></span>')
     .parent() // span elements
     .prepend('<img>')
     .find('img:first') // selector now new image
     .attr('src', target);
    console.log(target);     
    $$.css({
     'position': 'absolute',
     'left': 0,
     'top': this.offsetTop
    });
    $$.hover(function () {
     $$.stop().animate({
      opacity: 0
     }, 250);
    }, function ()  {
     $$.stop().animate({
      opacity: 1
     }, 250);
    });
  });
});

图像:

<img class="fade" runat="server" src="~/App_Themes/main/images/Beers-Color.jpg" style="background-image: url('../Bar/App_Themes/main/images/Beers-Faded.gif');" />`

您能否帮我找到我为了适应站点地图导航而更改的代码部分?我的网站只会走三层深。

非常感谢,

詹姆斯。

1 个答案:

答案 0 :(得分:0)

好的,所以我在'OReilly - Regular Expressions Cookbook'第41页的帮助下找到了解决方案。'匹配整个单词'

以下代码不会查找第二次出现但只是第一次出现而没有在路径中进一步查看..(我认为)。我刚刚添加了\/\bbar\b

var target = $$.css('background-image').replace(/^url|["]|\b(\w+)\s+\1\b|\/\bbar\b|[\)\(]/g, '');

希望这可以帮助遇到同样问题的其他人。