一吨通过SharePoint JS在调试器步进之后,我终于找到了一种方法,以防止此问题。
在SharePoint 2010:
//Set focus on our list web part
var webPart = document.getElementById('WebPartWPQ1');
WpClick({target: webPart});
//Prevent it from losing focus
SP.Ribbon.WebPartComponent.$3_1.deselectWebPartAndZone = function() { };
在SharePoint 2013测试版:
//Set focus on our list web part
var webPart = document.getElementById('MSOZoneCell_WebPartWPQ2');
WpClick({target: webPart});
//Prevent it from losing focus
SP.Ribbon.WebPartComponent.$3.deselectWebPartAndZone = function() { };
注意:这是超级哈克,并且不以任何方式支持通过Microsoft(因此它很可能在将来的版本甚至SharePoint 2013的RTM中进行更改)。
此外,请注意您的Web部件ID可能会有所不同,因此您应该仔细检查您是否将注意力集中在正确的Web部件上。
说明:它基本上覆盖了SP.Ribbon.WebPartComponent
取消选择Web部件的实例。从我所知道的情况来看,3美元/ 3美元的房产存储了对SP.Ribbon.WebPartComponent
实例的引用。
如果有人知道更好的方式来访问SP.Ribbon.WebPartComponent
实例,而不是$ 3/$ 3_1属性,请说出来,因为这将使该方法更加稳健。
你最终做了什么?我渴望得到一个好的解决方案! – bgmCoder 2014-11-14 17:56:27