停止SharePoint行为在编辑模式下跳转到最近的输入字段

时间:2012-03-08 09:44:17

标签: sharepoint sharepoint-2010

在单个页面上进入编辑模式时,SharePoint通常会跳转到最近的输入字段。有没有办法解决这个问题?

4 个答案:

答案 0 :(得分:2)

是的,您可以在大多数FieldControl上将AllowFirstFocus属性设置为false。 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.basefieldcontrol.allowfirstfocus.aspx

答案 1 :(得分:1)

我设法通过覆盖其中一个SharePoints内部函数来解决这个问题。这是一个肮脏的黑客,所以如果你使用它要小心。

ExecuteOrDelayUntilScriptLoaded(function(){
    RTE.PublishingRichTextEditor.setInitialFocusToEditableRegion = function(){};
}, 'SP.UI.RTE.Publishing.js');

这将有效禁用自动对焦,但可能会产生意想不到的副作用。请谨慎使用!

如果页面处于编辑模式,我只运行代码。我检测到这种情况的方法是使用此处的代码:https://sharepoint.stackexchange.com/questions/12792/how-do-i-know-if-the-page-is-in-edit-mode-from-javascript

答案 2 :(得分:0)

我可以使用以下代码阻止自动对焦

This ExecuteOrDelayUntilScriptLoaded(function () { RTE.PublishingRichTextEditor.setInitialFocusToEditableRegion = function () { }; RTE.Canvas.setInitialFocus = function () { }; }, 'sp.ui.rte.publishing.js');

答案 3 :(得分:0)

上述答案都不适合我,我在页面布局中使用SharePoint 2013和发布Html字段。

直到我在sp.ui.rte.publishing.js文件中找出方法并用以下内容覆盖该方法:

SP.SOD.executeFunc('sp.ui.rte.publishing.js', 'SP.ClientContext', function () {
   RTE.Canvas.initialFocusOnRichText = function () { };
});

在覆盖此功能后,我没有在Rich Html字段中发现任何控制台错误或任何不需要的行为,但如果有人注意,请发表评论。