我已将jQuery代码添加到SharePoint脚本编辑器Webpart,它采用文档名称(例如, my_doc.pdf )将域添加到其中以创建完整路径,然后包装{{ 1}}标记下一个单元格上的文本。这在页面加载时非常有效,但在排序或过滤列表时,所有DOM更改都会消失。这是代码(我将<a>
替换为$(document).ready
):
_spBodyOnLoadFunctionNames.push
提前多多感谢。
答案 0 :(得分:0)
评论的文字太长了,所以我们走了。
这是一篇很好的文章,其中包含有关JSLink https://code.msdn.microsoft.com/office/Client-side-rendering-code-0a786cdd的示例 它非常简单直接 - 不需要脚本编辑器或其他奇怪的东西。 假设您想要更改“MyURL”字段渲染。
// myrendering.js
(function () {
var ctx = {};
ctx.Templates = {};
ctx.Templates.Fields = { // you can override many things, but in this case we are going for the Fields
// Apply the new rendering for MyURL field on List View
// But you can add as many fields as you like
"MyURL": { "View": myUrlFieldTemplate }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctx);
})();
// This function provides the rendering logic for list view
// Instead of default SharePoint url field you will get whatever you return from this function
function myUrlFieldTemplate(ctx) {
// put debugger here to see whats going on - it will help you alot
var myUrl = ctx.CurrentItem[ctx.CurrentFieldSchema.Name]; // get field value
return "<a target='_blank' href='" + myUrl + "'>Im JSLink rendered field!</a>";
// or you can return whatever you want, for example
// return "<button>Im button now!</button>";
// and your field "MyURL" will become a button in a list view
}
//end
答案 1 :(得分:0)
显然,保持更改的一种方法是在每hashchange
之后调用该函数:
window.addEventListener("hashchange", myFunction, false);