【问题标题】:What would cause FF and Chrome to postback twice (once with a complete reload)?什么会导致 FF 和 Chrome 回发两次(一次完全重新加载)?
【发布时间】:2011-10-17 13:48:12
【问题描述】:

我正在寻找我不知道从哪里开始的想法。

当我在 FF 和 Chrome 中单击一个按钮时,我的页面会执行回发并遵守 if(!ispostback),但紧接着,它会执行另一个,但这次它就像一个完整的页面重新加载,它运行我的内容if(!ispostback)

我的网页有 6 个面板,它们的行为有点像向导,每次单击下一个面板时,都会使一个面板不可见,一个可见。(这样做的原因是因为我需要验证所有信息一口气,但不能一次全部显示出来,因为它有很多!)

第一个面板包含一个在 window.onload 上设置的谷歌地图,如下所示:(尽管这可能与问题完全无关)

 window.onload = function () {
    initialize();
}
var map;
function initialize() {
    var latlng;
    if ('<%=Latlng %>' != '' ) {
        latlng = new google.maps.LatLng(<%=Latlng %>);
    }       
    else {
        latlng = new google.maps.LatLng(54.290882, -4.833984);
    }
    var myOptions = {
        zoom: 4,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var mapCanvas=document.getElementById("map_canvas");
    if(mapCanvas !=null){ 
    map = new google.maps.Map(mapCanvas, myOptions);

  if ('<%=Latlng %>' != '') {     
    var marker = new google.maps.Marker({
            map: map,
            position: latlng
        });
        map.setZoom(12);}
        else if(document.getElementById('<%=txtPostCode.ClientID %>').value != '')
    {
    SetMap(document.getElementById('<%=txtPostCode.ClientID %>'));
    }  
    }
}

其余的只是文本框和转发器。

我读过的唯一可能导致问题的内容是 img 控件上的空“src”属性。所以我尝试删除我所有的 img 控件,它没有任何区别。

我在这个页面上有很多信息,所以不能全部粘贴,但是没有遍历所有内容并逐个删除以找到有问题的对象,有人知道从哪里开始吗?

在 IE 中不行!?

贝克斯

【问题讨论】:

  • 我知道这很愚蠢,但你检查过你在 html 中包含了多少次你的 js?
  • 整个页面是否在浏览器中重新加载,或者只是在后台某个地方发出了额外的完整请求?

标签: jquery asp.net firefox google-chrome postback


【解决方案1】:

不过,我猜“空 src 属性”现象是问题的根源。对于某些类别的空属性,FF 会兴高采烈地将这些解释为对当前 URL 本身的引用,并触发您页面的第二次 GET,以尝试将返回的数据用作某种内容。这将是您在此处看到的页面生命周期中的非 PostBack 运行。网络分析工具也应该显示额外的请求。

您可以尝试浏览呈现的 HTML(即查看浏览器中的页面源代码)并搜索可能导致该行为的 "" 属性。

【讨论】:

  • 找到了.. 隐藏在用户控件中! :)
猜你喜欢
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 2020-09-28
相关资源
最近更新 更多