기본 SharePoint 2013 문제 추적기에서 일부 맞춤 설정을 위해 JavaScript를 사용하고 있습니다. 사용자가 문제 (기본 SharePoint 기능 presave)를 제출하면 JavaScript가 문서를 새 URL로 리디렉션해야합니다. Internet Explorer에서는 Firefox에서 모든 것이 제대로 작동하지만 알 수없는 이유로 리디렉션이 Chrome에서 작동하지 않습니다.Chrome 리디렉션 (SP 모달 새 창)
위치, replace.href, 할당 등을 사용했습니다. 결과는 동일한 크롬이 리디렉션없이 양식을 저장합니다. 왜 작동하지 않는지 알려주시겠습니까?
나는 SP 2013 온라인을 사용하고 (그리고 난 SP 디자이너에 액세스 할 수없는) 나는 당신이한다고 생각
<script src="/sites/SiteAssets/Scripts/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/sites/SiteAssets/Scripts/sessvars.js"></script>
<script language="javascript" type="text/javascript" src="/sites/_layouts/15/clientpeoplepicker.js"></script>
<script type="text/javascript">
// Here i have small function to get email from sharepoint peoplePicker field
function getEmailFromPeoplePicker(title) {
var ppDiv = $("div[title='" + title + "']")[0];
var peoplePicker = SPClientPeoplePicker.SPClientPeoplePickerDict[ppDiv.id];
var userList = peoplePicker.GetAllUserInfo();
var userInfo = userList[0];
var userEmail;
if(userInfo != null)
{
userEmail = userInfo.EntityData.Email;
}
return userEmail;
}
function PreSaveAction(){
// check if there is attachment
if ($('#onetidIOFile').get(0).files.length === 0) {
} else {
OkAttach() //attach file to form
}
//get email from field
var RequestApprover = getEmailFromPeoplePicker('Assigned To');
//create link for redirection with email at the end (ill use it latter for sending emails)
var targetUrl = '/sites/SitePages/RedirectDestination.aspx' + '#' + RequestAprover;
//window.location.href = targetUrl;
//location.replace(targetUrl);
//window.location.assign(targetUrl);
// window.top.location.href = targetUrl;
window.location.assign(targetUrl); // <---------- redirection which works in IE and FireFox but not in Chrome
//window.location.href = targetUrl;
//window.location.assign(targetUrl);
//window.parent.location.href(targetUrl);
//setTimeout(function(){location.href = targetUrl},500);
return true;
}
</script>
Дякую 대답 : 나는 테스트 결과를 거짓으로 보았습니다. 이전과 리디렉션이 제대로 작동하지만 - 페이지를 리디렉션하기 전에 양식을 저장해야합니다. – Tehn
위대한! 도움이 돼서 기쁩니다. 답변을 귀하의 문제를 해결 한 것으로 표시하는 것을 잊지 마십시오 (도움이된다면 :)). 행운을 빕니다. –
일부만 작동합니다. 이제는 리디렉션 할 수 있지만 셰이프 양식은 저장되지 않았습니다 (false를 반환했기 때문에). 나는 window.open에 대해서만 크롬을 생각하지만 그것은 피하고 싶지 해결 방법입니다. – Tehn