프로젝트 버그 동료의 수정이 같은 오류 JS를 표시 요소를 삭제합니다, IE11에서 호환되지 않는 발견 된 참조 주소를 찾을 수 없기 때문에, 결과는, 더 함께 삭제됩니다.
코드를하기 전에
시간 트리거 하위 페이지를 저장 상위 페이지의 콘텐츠의 형태를 찾아
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 개 기능은 저장 () { 2 VAR productEditPage = $ (parent.document) .contents () 검색 ( "#의 layui 함유층 iframe이"+ parent.layerIndex) [0. ] .contentWindow; 3 VAR의 선택 =의 getAllSelections (); 4 $ (선택) .each (기능 (인덱스, E) - { 5 productEditPage.productSchemeData.productSchemeBom.push (E); // 父页面的对象 6 }); 7 productEditPage.loadBom (); 8 parent.layerIndex을 삭제; 9 VAR 인덱스 = parent.layer.getFrameIndex (window.name); 10 parent.layer.close (인덱스); 11 }
부모 폼의 productSchemeData.productSchemeBom에서 하위 폼 할당 데이터를 제거, 결과는 하위 페이지가 상위 페이지에있는 참조를 해당 참조가도 폐쇄 해당 폐쇄 이후의 정보 요소에 주어졌다
데이터가 삭제되면 내가 더 적절한, 다음 인수의 형태로 생각 통보 찾을 수 없습니다, 인터넷에 글을 많이 찾을 어느 날 아침이 구덩이를 디버깅, 데이터가 깊은 사본을 삭제하기 전에, 그것은 표시되지 않습니다 원래 참조 문제가 존재하지 않는 주소
해결 방법 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 개 기능은 저장 () { 2 VAR productEditPage = $ (parent.document) .contents () 검색 ( "#의 layui 함유층 iframe이"+ parent.layerIndex) [0. ] .contentWindow; 3 VAR의 선택 =의 getAllSelections (); 4 VAR productAdd = 새로운 배열 (); 5 $ (선택) .each (기능 (인덱스, E) - { (6) // productEditPage.productSchemeData.productSchemeBom.push (E), 7 productAdd.push (E), (8) }); 9 productEditPage.loadBom (productAdd); 10 parent.layerIndex을 삭제; 11 VAR 지수 =parent.layer.getFrameIndex (window.name); 12 parent.layer.close (인덱스); 13 }
새로 할당 된 하위 페이지의 어레이에서, 상위 페이지에 파라미터로서 전달
VAR productAdd = 새로운 배열 ();
$ (선택) .each (기능 (인덱스, 예) {
productAdd.push (E)
});
productEditPage.loadBom (productAdd);
상위 페이지에있는 그것의 깊은 복사 또는 삭제 관련 작업
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 개 함수 loadBom (productAdd) { 2 경우 (productAdd = 미정 productAdd = &&! 널 && productAdd = ""&& productAdd.length> 0! ) 3- { 4- VAR newArray = 새 (배열); 도 5 의 경우 (productSchemeData.productSchemeBom! = null의 && productSchemeData.productSchemeBom.length> 0 ) 6 { 7 newArray = productSchemeData.productSchemeBom.concat (productAdd); // 数组拼接 8 productSchemeData.productSchemeBom = $ .extend ( 참 [] newArray); // 深拷贝 9 } 10 또 11 { 12 productSchemeData.productSchemeBom = $ .extend ( 참 [] productAdd); // 深拷贝 13 } 14 } 15 ..................
당신은 어떻게 삭제하는 어떤 데이터 딥 카피는, 주어진되지 않습니다.