我正在发布网站上工作。根据需要,页面库的视图需要显示在页面上。该视图包含托管元数据字段。
如果直接访问该页面,则可以使用任何字段过滤该视图。 但是如果通过其他站点甚至同一站点上的iFrame访问页面,使用托管元数据字段过滤视图,我无法从服务器获得任何响应。 过滤适用于除托管元数据之外的所有类型的站点列。
我试图找出问题: 尝试使用字段进行过滤时,将动态生成基于开箱即用模板的下拉菜单。下拉菜单中的每个项目都有一个onmenuclick事件。 对于简单类型字段,事件为:
onmenuclick="javascript:HandleFilter(event, 'url')"
但是对于托管的元数据,事件是:
onmenuclick="javascript:window.parent.HandleFilter(window.parent.event, 'url')"
我不允许修改开箱即用模板。 所以请帮助,有任何解决方案或修补程序?任何想法都表示赞赏。 谢谢。
答案 0 :(得分:0)
function fixFilters() {
$("[id^=FilterIframe]").on("load", function () {
$(".ms-vh-div[fieldtype='TaxonomyFieldType']").on("mouseover",".ms-MenuUIULItem",function() {
var old = $(this).attr("onMenuClick");
if (typeof old != "undefined") {
var newString = old.replace(/window\.parent\./g,"");
$(this).attr("onMenuClick",newString);
}
});
});
};
_spBodyOnLoadFunctionNames.push("fixFilters");
上述工作对我来说具有合理的可靠性。