【问题标题】:When webpage refreshes, does not default focus to the top of the SharePoint page网页刷新时,默认焦点不位于 SharePoint 页面顶部
【发布时间】:2013-03-07 02:01:16
【问题描述】:

我有一个用 ColdFusion5 编写的注册页面,它嵌套在 SharePoint 2010 页面中。
当我点击注册时的提交按钮时,注册页面按要求进入确认页面,但我需要将SharePoint页面滚动到最顶部。

我在网上研究并尝试过:

通过表单标签将#top添加到注册页面:

<form name="form1" method="post" onsubmit="return NonMemberValidateForm2()" action="processRegistration.cfm#top">

在确认页面的onload函数中添加location.href='#top':

<body onload="location.href='#top'">

但是,这些都不起作用。有什么想法吗?

编辑: 我的 SharePoint 页面上有一个 Web 部件查看器。它占了很大一部分,所以我必须在实际的 SharePoint 页面上向下滚动才能查看整个内容(我已经禁用了 Web 部件上的滚动条)。当我向下滚动到 SharePoint 页面的底部时,我单击查看器中的一个按钮。这会刷新查看器中的页面,但我仍然位于 SharePoint 页面的底部。我希望能够将一些代码附加到该按钮,使外部 SharePoint 页面一直滚动到顶部。

【问题讨论】:

  • 您是否将引用的锚点添加到页面顶部(或者它已经存在)? &lt;a name="top"&gt;&lt;/a&gt;。你也可以试试this tip from Ben Nadel。是所有浏览器的行为方式都相同,还是此问题特定于某个浏览器?
  • 我的 标签后面有那个代码......仍然没有
  • 页面中是否有其他 JavaScript 强制关注另一个元素?
  • 没有。仅在发生验证错误时才设置焦点。
  • SharePoint 中滚动的问题在于隐藏了默认滚动并实现了自定义滚动。查看此帖子:sharepoint.stackexchange.com/questions/26539/…

标签: html sharepoint coldfusion focus


【解决方案1】:

正如 Marek 在评论中指出的那样,SharePoint 2010 基本上“扼杀”了页面上的锚点支持。此问题是由 Microsoft 选择遵循以支持功能区 UI 显示并将其固定在页面顶部的特定实现引起的。

在这里解释所有代码会很长,但基本上可以归结为标有“scroll=no”的页面的正文标签

<body scroll="no">

这实际上会在页面加载时禁用滚动。然后执行名为 FixRibbonAndWorkspaceDimensions 的 javascript 函数,以向页面添加“溢出”和滚动支持。

也就是说,如果您想使用锚点,则必须编辑母版页以更改上述代码。如果您决定走这条路,您最好的猜测是尝试重新实现功能区以使用 position:fixed 而不是 javascript 函数来管理定位。

其实,已经有人试过了。看看凯尔的这篇博文。如果您决定尝试修复页面布局,它可能会对您有所帮助:SharePoint 2010 Scrolling

【讨论】:

  • 这不是我要找的。我想保留 SharePoint 滚动条,但是当我在 Web 部件查看器中刷新网页时,我希望 SharePoint 页面自动滚动到顶部。
  • 好的,这似乎是一个不同的(仍然相关的)问题。让我想想如果有什么想法,我似乎记得过去有类似的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2012-07-04
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多