작콩큰콩

상위 프레임 변수 가지고 오기 본문

작은 콩 개발자/JS

상위 프레임 변수 가지고 오기

귤치치 2023. 5. 23. 10:11
상위 프레임 변수 가지고 오기
- 상위 프레임
function aa() {

}

let a = 1;
var b = 2;
const c = 3;

- 하위 프레임
parent.aa(); // 상위 프레임 함수 실행 가능

// 변수들의 사용 가능은 변수의 범위에 따라 결정
parent.a; // 상위 프레임 변수 사용 못함.
parent.b; // 상위 프레임 변수 사용 가능.
parent.c; // 상위 프레임 변수 사용 가능.

 

과정

 

 

< 상위 프레임 변수 가지고 오기 >
1. 
menu.select("tree_89"); 

-> 실패
- 셀렉트만 되지 아래 토글이 나오지 않는다.


2. 
$('button[data-dhx-id=tree_98]').click();
$('button[data-dhx-id=tree_3513]').click();

parent.$('button[data-dhx-id=tree_98]').click();
parent.$('button[data-dhx-id=tree_3506]').click();
일단 클릭하는 것에는 성공 하지만 두개 동시에 실행하면 되지 않는다. 

parent.$('button[data-dhx-id=tree_98]').click(function(){
    $('button[data-dhx-id=tree_3506]').click();
});

-> 실패
실행 되지 않았다. 


3. 
var button = parent.$('button[data-dhx-id=tree_98]')[0];
//button.dispatchEvent(new Event('click')); // 가상의 click 이벤트 발생
parent.$('button[data-dhx-id=tree_98]').click();

// 버튼에 이벤트 핸들러 등록
button.addEventListener('click', function() {
  // 버튼 클릭 후 실행될 로직 작성
  console.log("버튼 클릭 후 다른 함수 실행");
  parent.$('button[data-dhx-id=tree_3506]').click();
});

-> 실패
콘솔은 잘 찍히는데 아직 토글이 나오지 않아서 아래 클릭이 안되었다. 


4. 상위 탭바를 가져와서 넣어준다.
-> 실패
상단의 탭바를 가져올 수 없었다.  
여기서 중요한 점은 함수는 잘 호출하는데 왜 변수는 못 가져오냐는 것이다.
이것은 변수의 범위와 관련된 것이다. 지금 let 으로 선언된 tabbar는 하위 프레임에서 사용할 수가 없다.
var로 선언하거나 const 로  선언하여야 전역 번수로 사용이 가능하다. 

parent.tabbar.addTab({
    id: "tree_3513"
    ,tab: "수신관리대장"
    ,menuSeq: "3513"
    ,menuUrl: "/dom/document/receiveList"
});

parent.tabbar.setActive("tree_3513"); // 탭 활성화

==>> 결국 이사님이 공통으로 생성해주시기로 함.

 

참고
 

Var, Let, Const의 차이점은?

ES2015(ES6)에서 반짝이는 새로운 기능들이 많이 등장했습니다. 2020년이 된 지금, 많은 JavaScript 개발자들이 그 기능들을 사용하기 시작했을 것이며 또 익숙해졌을텐데요. 여전히 그 중 몇몇은 일부

www.freecodecamp.org

 

[jQuery] iframe 접근, 제어

// iframe 접근window.frames.length; // 1window.frames[0].document; // iframe의 window의 document객체document.getElementById('iframeA'); // iframe 엘리먼트document.getElementById('iframeA').contentWindow.document; // iframe의 window의 document

yokina.tistory.com

Comments