실제 프로젝트에서는 종종 그러한 요구 사항, 즉 하위 시스템 페이지 사이를 뛰어 넘고 새 페이지에서 열리는 것을 만납니다. 내가있는 프로젝트 팀은 SSH 프레임 워크를 사용하고 있으므로 URL은 **** 작업과 유사하며 두 가지 매개 변수 (시스템 ID 및 시스템 이름)도 있습니다. 두 매개 변수는 Struts에 의해 가로 채고 세션에 저장됩니다. 열린 서브 시스템 페이지의 ztree 플러그인에서 구현 된 트리와 같은 메뉴도 있습니다. 매개 변수 시스템 ID를 초기화해야합니다. Window.open (url, "_ blank")을 직접 사용하여 URL을 너무 길게 만들고 일부 매개 변수도 노출됩니다. 따라서 제출 과정에서 매개 변수의 전달을 숨기고 대신 포스트를 사용하여 제출하고 싶습니다. 우선, Ajax 제출을 생각하지만 두 매개 변수를 통과하는 데 문제가있을 것입니다. ajax submission and window.open ()은 동작이 두 번 이동하여 포기합니다. 나중에 Window.open () API를 다시 보았고 링크 주소는 http://www.w3school.com.cn/jsref/met_win_open.asp입니다. Window.open ()은 기본적으로 GET 제출 방법입니다. 게시물 제출 방법을 구현하려면 다른 방법을 생각해야합니다. //www.vevb.com/article/32826.htm을 참조하십시오. 메소드가 여기에 소개됩니다. 또한 종종 사용되는 방법입니다. 실제 상황에 따라 몇 가지 수정을했습니다.
코드 사본은 다음과 같습니다.
함수 OpenPostWindow (url, name, data1, data2) {
var tempform = document.createElement ( "form");
tempform.id = "tempform1";
tempform.method = "post";
tempform.action = URL;
tempform.target = 이름;
var hideInput1 = document.createElement ( "입력");
HideInput1.type = "숨겨진";
hideInput1.name = "xtid";
HideInput1.Value = data1;
var hideInput2 = document.createElement ( "입력");
HideInput2.type = "숨겨진";
hideInput2.name = "XTMC";
hideinput2.value = data2;
tempform.appendChild (HideInput1);
tempform.appendChild (HideInput2);
if (document.all) {
tempform.attachevent ( "onsubmit", function () {}); //즉
}또 다른{
var subobj = tempform.addeventListener ( "제출", function () {}, false); // Firefox
}
document.body.appendchild (tempform);
if (document.all) {
tempform.fireevent ( "onsubmit");
}또 다른{
tempform.dispatchevent (새 이벤트 ( "제출"));
}
tempform.submit ();
document.body.removechild (tempform);
}
// 함수 OpenWindow (이름) {
// window.open ( "", 이름);
//}
OpenPostWindow () 함수의 매개 변수 수는 실제 요구에 따라 자체적으로 수정됩니다. Data1 및 Data2는 작동 중에 전달되어야하는 매개 변수입니다. 또한 JavaScript 이벤트 브라우저 호환성 문제는 여기에서 고려해야합니다. 여기에서 function openwindow ()에 댓글을 달았습니다. 그렇지 않으면 추가 빈 페이지를 열 것입니다 (약 : blank). 이것은 기본적으로 요구를 충족시킵니다.
위는이 기사에서 공유되는 모든 내용입니다. 나는 당신이 그것을 좋아하기를 바랍니다.