浏览器在Localhost中加载时自动滚动到页面底部

时间:2017-03-07 14:51:52

标签: asp.net visual-studio google-chrome firefox iis

这是我见过的最奇怪的问题。 我正在使用Visual Studio Enterprise 2015版本14.0.25425.01 Update 3并开发.NET Web应用程序。 今天当我发布一个Web应用程序时,在完全加载页面之后,它突然向下滚动到底部。 首先我认为它可能是一个javascript函数或其他东西,但事实并非如此。 它在托管服务器上运行没有问题,但在本地主机中存在此问题。

我尝试过的诊断步骤如下,没有其他任何事情可以解释。

1)我让我的同事从TFS获取我的版本并运行它,该项目在他的机器上运行良好。

2)我重新发布了我的版本并上传到主机,它在主机上运行良好。

3)我评论了所有css和js文件,重置了Chrome缓存并再次尝试,没有运气!

4)我下载并安装了Mozilla Firefox,问题依然存在。

5)我重启了IIS Express并重新启动了我的笔记本电脑,没用。

6)我打开另一个解决方案并运行它,奇怪的是其他项目也存在问题!!!!

7)我尝试更改项目端口但没有帮助。

8)我试图创建一个没有MasterPage的新页面,它没有问题。

9)当我向页面添加一个Button或Anchor元素时,浏览器会向下滚动到该元素,但没有任何活动元素(如锚点或按钮)的页面没有问题。

10)我还尝试在Chrome设置中禁用并启用Scroll-Anchoring,但没有帮助。

我很困惑,如果浏览器导致问题,为什么它在Host上工作得很好而且只是LocalHost的问题?为什么FF和Chrome都有同样的问题? IIS是否可能导致此类问题?!

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:6)

我刚刚拥有这个,在我的情况下肯定是浏览器链接。要禁用此功能,可以将此设置添加到web.config。

<add key="vs:EnableBrowserLink" value="false" />

正如@Salman所指出的,这应该存在于appSettings部分:

<appSettings>
    <add key="vs:EnableBrowserLink" value="false" />
</appSettings>

答案 1 :(得分:2)

我也经历过这个问题,昨天我就开始了。相同的症状 - 在本地发生,但如果发布则不发生。

昨天实施了Windows更新 - 基于x64的系统的Windows 7更新(KB2952664)。我想知道他们是否有联系。

禁用浏览器链接也适用于我

答案 2 :(得分:1)

这是由最近更新Web Accessibility Checker扩展引起的。我刚刚发布了带有修复的版本1.4.47

答案 3 :(得分:0)

浏览器行为(问题):

浏览器会在加载时自动滚动到页面底部。

问题:

Web Essentials以某种方式导致浏览器链接中的错误。

Temporal Solution(对web.config没有变化):

1)禁用浏览器链接&gt;取消选中以下复选框:

Broswer Link Disable

OR

2)禁用Web Essentials Extension。

进一步详情:

显然问题在于它们在browserLink.js中使用Element.scrollIntoView()时存在:

u.getBackgroundColor = function(a) {
  var b = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [],
    e = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];
  e !== !0 && a.scrollIntoView();
  var f = [],
    g = u.getBackgroundStack(a);
  return (g || []).some(function(e) {
      var g = window.getComputedStyle(e),
        h = d(e, g);
      return a !== e && !v.visuallyContains(a, e) && 0 !== h.alpha || c(e, g) ? (f = null,
        b.push(e), !0) : 0 !== h.alpha && (b.push(e),
        f.push(h),
        1 === h.alpha)
    }),
    null !== f && null !== g ? (f.push(new u.Color(255, 255, 255, 1)),
      f.reduce(u.flattenColors)) : null
}