2015-10-18 26 views
0

我是SharePoint新手,需要一些幫助。我有一個正常的HTML和JavaScript編寫的網頁,其中包含一個包含SharePoint頁面的IFRAME。當網頁加載時,它將用戶名稱包含在隱藏字段中。我試圖做到這一點,當一個人點擊網頁上的按鈕時,它將People Picker設置爲來自我的網頁(用戶名)的文本輸入值。我嘗試在IFRAME中提取SharePoint People Picker的textarea元素的ID,並使用普通的j Query來設置People Picker的textarea的值,但它不起作用。有任何想法嗎?我試圖在NewForm.aspx上輸入它。在NewForm.aspx中更改人員選擇器共享點IFRAME

在網頁中,我有一個隱藏的輸入,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

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中......如果您沒有,那麼您的運氣不好。

+0

我可以從父項中設置子項(iframe)中的其他選項,例如複選框。這適用於複選框:$('#newForm')。contents()。find('#xxxxx')。prop('checked',true);.我只是無法從父級修改人員選取器。我錯過了什麼嗎? – nicholasm5581

相關問題