在NewForm中更改People Picker.共享点IFRAME

Change People Picker in NewForm.aspx Share Point IFRAME

本文关键字:Picker 共享 IFRAME People NewForm      更新时间:2023-09-26

我是SharePoint新手,需要一些帮助。我有一个网页写在正常的HTML和JavaScript与IFRAME,其中包含一个SharePoint页面。当网页加载时,它在一个隐藏字段中包含用户名。我试图使它,所以当一个人点击网页上的一个按钮,它设置人的选择器文本输入的值从我的网页(用户的名字)。我试图在IFRAME中拉SharePoint People Picker的文本区域元素的ID,并使用正常的j查询来设置People Picker的文本区域的值,但它不起作用。什么好主意吗?我正在尝试在NewForm.aspx上输入它。

在网页中,我有一个id为'hiddenUser'的隐藏输入,它以这种格式提取SharePoint用户名= 'Jackson, Joseph'。这很好;虽然,我不确定这是否是最好的方法。假设hiddenUser输入有一个值,这就是我用来设置People Picker的方法:

var userPosting = $('#hiddenUser').val(); $('#newForm').contents().find('#ctl00_m_g_ffa4fb44_5605_472f_b10f_ba47d0267de5_ctl00_ctl04_ctl19_ctl00_ctl00_ctl04_ctl00_ctl00_UserField_downlevelTextBox').text(userPosting);

'newForm'是我网页上IFRAME的ID。我还尝试了。val而不是。text,它不起作用。有什么建议吗?SharePoint表单上有多个People Pickers

iframe中的嵌入页面可以与包含它的父页面对话,但是父页面不能与子页面对话,除非子页面明确允许。嵌入页面中的JavaScript可以引用parent对象。

看看这个类似的答案:

有办法。当iframe中的页面加载时,让它执行以下操作parent.childGetElementById = function (id) {return document.getElementById(id);}parent.childLoaded();

这将在父页面(包含iframe)的全局作用域中创建一个函数。然后在父元素中,有以下内容function childLoaded() {var dom = childGetElementById('someid');}

这是随着你的页面加载到iframe的控制…如果你不这样做,你就不走运了。