【问题标题】:Change People Picker in NewForm.aspx Share Point IFRAME更改 NewForm.aspx 中的人员选取器 Share Point IFRAME
【发布时间】:2016-01-17 02:14:32
【问题描述】:

我是 SharePoint 新手,需要一些帮助。我有一个用普通 HTML 和 JavaScript 编写的网页,其 IFRAME 包含一个 SharePoint 页面。当网页加载时,它会在隐藏字段中包含用户名。我试图做到这一点,当一个人点击网页上的按钮时,它会将人物选择器设置为我网页中的文本输入值(用户名)。我试图在 IFRAME 中拉取 SharePoint 人员选取器的 textarea 元素的 ID,并使用普通的 j Query 来设置人员选取器的 textarea 的值,但它不起作用。有任何想法吗?我正在尝试在 NewForm.aspx 上输入它。

在网页中,我有一个 ID 为“hiddenUser”的隐藏输入,它以这种格式提取 SharePoint 用户的名称 =“Jackson, Joseph”。效果很好;虽然,我不确定这是否是最好的方法。假设 hiddenUser 输入有一个值,这就是我用来尝试设置人员选择器的方法:

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 表单上有多个人员选取器。

【问题讨论】:

    标签: javascript jquery iframe sharepoint peoplepicker


    【解决方案1】:

    iframe 中的嵌入页面可以与包含的父页面对话,但除非子页面明确允许,否则父页面无法与子页面对话。嵌入页面中的 JavaScript 可以引用 parent 对象。

    查看this similar answer

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

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

    这与您可以控制加载到 iframe 中的页面一样...如果您不这样做,那么您就不走运了。

    【讨论】:

    • 我可以在父级的子级 (iframe) 中设置其他选项,例如复选框。这适用于复选标记框:$('#newForm').contents().find('#xxxxx').prop('checked', true);。我只是无法从父级修改人员选择器。我错过了什么吗?
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多