2017-03-20 5 views
0

그 안에 iframe이있는 녹아웃 응용 프로그램이 있습니다. 내 녹아웃에서 iframe 내에서 함수를 호출하고 싶습니다.iframe 내에서 모의 ​​녹아웃 기능을 호출 하시겠습니까?

나는 parent.myFunction()이 작동해야한다고 말하는 것에 대해 여러 답변을 보았습니다. 그러나 나를 위해 작동하지 않기 때문에 knockout을 사용하지 않는다면 그것을 추측하고 있습니다. 여기

는 벗었 예입니다 https://embed.plnkr.co/pCZCv73UpxTLOpClwxdX/

가 어떻게 iframe을 내 버튼을 iFrame에의 한 외부와 같은 함수를 호출 할 수 있습니까?

감사합니다.

답변

1

아래의 bindIframe custom binding을 사용하면 매우 간단합니다. 기본적으로 iframe 문서가로드되면 ko.applyBindings이 호출됩니다.

ko.bindingHandlers.bindIframe = { 
    init: function(element, valueAccessor) { 
     function bindIframe() { 
      try { 
       var iframeInit = element.contentWindow.initChildFrame, 
        iframedoc = element.contentDocument.body; 
      } catch(e) { 
       // ignored 
      } 
      if (iframeInit) 
       iframeInit(ko, valueAccessor()); 
      else if (iframedoc) 
       ko.applyBindings(valueAccessor(), iframedoc); 
     }; 
     bindIframe(); 
     ko.utils.registerEventHandler(element, 'load', bindIframe); 
    } 
}; 

https://embed.plnkr.co/Hvv2Mx3NZKc9iuS61TXD/

+0

나는 당신이 제공 한 plunker 링크의 변경 사항이 표시되지 않습니다. – TerminatioN

+0

저장하는 것을 잊어 버린 것 같습니다. 지금 업데이트되었습니다. –

+0

감사합니다. 내가 iframe에 대한 자바 스크립트 함수 내에서 parent 함수를 호출하는 방법이 있습니까? 아니면 html 요소에 databind 태그를 사용해야합니까? – TerminatioN