我是SharePoint的新手,需要一些帮助。我有一个用普通HTML和JavaScript编写的网页,其中包含一个包含SharePoint页面的IFRAME。加载网页时,它在隐藏字段中包含用户名。我试图这样做,当一个人点击网页上的按钮时,它会将人员选取器设置为我的网页上的文本输入值(用户名)。我试图在IFRAME中提取SharePoint人员选取器的textarea元素的ID,并使用普通的j查询来设置人员选取器的文本区域的值,但它不起作用。有任何想法吗?我想在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表单上有多个人员选取器。
答案 0 :(得分:0)
iframe中的嵌入页面可能与包含的父页面进行通信,但除非子项明确允许,否则父页面无法与子项通信。嵌入页面中的JavaScript可以引用parent
对象。
有一种方法。当iframe中的页面加载时,请执行以下操作
parent.childGetElementById = function (id) {return document.getElementById(id);}
parent.childLoaded();
这将在父页面的全局范围(包含iframe)中创建一个函数。然后在父母中,只需拥有以下内容
function childLoaded() {var dom = childGetElementById('someid');}
这是因为您可以控制加载到iframe中的页面...如果您没有,那么您运气不佳。