在单个页面上进入编辑模式时,SharePoint通常会跳转到最近的输入字段。有没有办法解决这个问题?
答案 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字段中发现任何控制台错误或任何不需要的行为,但如果有人注意,请发表评论。