0

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

在网页中,我有一个 ID 为“hiddenUser”的隐藏输入,它以这种格式提取 SharePoint 用户的名称 =“杰克逊,约瑟夫”。效果很好;虽然,我不确定这是否是最好的方法。假设 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 表单上有多个人员选取器。

4

1 回答 1

0

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

看看这个类似的答案

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

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

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

于 2015-10-19T00:52:53.970 回答