2012-08-16 6 views
0

최근 부모님 정보에 액세스하는 iframe의 악명 높은 문제가 발생했습니다. 나는 더 간단한 htmls에서 그것을 모방하려고 노력했다. 그래서 두 파일, parent.htm, child.htm을 만들었습니다. 로컬에서 실행되었지만 일반적인 오류가 발생합니다.iFrame 부모 액세스

Unsafe JavaScript attempt to access frame with URL file:///C:/Users/kvaradar/Desktop/New%20folder/Parent.htm from frame with URL file:///C:/Users/kvaradar/Desktop/New%20folder/Child.htm. Domains, protocols and ports must match. 

음, 부모와 자녀가 동일한 도메인에 있어야한다고 들었습니다. 하지만 제 경우에는 로컬 파일로 보내고 있습니다 - Parent.htm, Child.htm.

나는 그들이 동일한 도메인에 있어야한다고 가정하고있었습니다. 이 경우 왜이 오류가 발생합니까? 나는 뭔가를 놓친다.

다음은 상위 HTML입니다.

<html xmlns="http://www.w3.org/1999/xhtml"> 
<body> 
<span id="myParentWindow">Some content of parent frame's span.</span> 
<iframe src="Child.htm"></iframe> 
</body> 
</html> 

하위 HTML.

<html xmlns="http://www.w3.org/1999/xhtml"> 

<script type="text/javascript"> 
    function loadChild() { 
     document.getElementById('myChild').innerHTML 
      = window.parent.document.getElementById('myParent').innerHtml; 
    } 
</script> 
<body onload="loadChild()"> 
    <div style="border:1px solid green;height:500px; min-height:500px"> 

    Some content of the child frame. 
    In the following span, I am trying to fill the parent's span content through javascript 

    <span id="myChild"></span> 
    </div> 
</body> 
</html> 

답변

0

나는 상기 오류를 재현 할 수는 없지만 loadChild 기능이 오류가 있습니다 : 그것은 myParent 대신 myParentWindow 의미

  • 합니다.

  • 이는 'innerHTML'대신 innerHtml을 나타냅니다.

고정 스크립트 : 파이어 폭스 (14) 모든 것이 모든 스크립트 경고 또는 오류없이 잘 작동에

function loadChild() { 
    document.getElementById('myChild').innerHTML 
    = window.parent.document.getElementById('myParentWindow').innerHTML; 
} 

심지어 위의 수정 후에, 나는 그 오류를 reprodure 수 없습니다.

+0

안녕하세요 제이, 답장을 보내 주셔서 감사합니다. loadChild()에 두 가지 오류가 있음에 동의합니다. 하지만 파이어 폭스에서는 보통 오류를 보지 않을 것이다. 오류 콘솔을 보려면 오류 콘솔로 이동해야합니다. 도구 메뉴 -> 웹 개발자 -> 오류 콘솔에서 액세스 할 수 있습니다. – SaravananArumugam

+0

'try ... catch' 블록을 통해 처리하고'alert'를 사용하여 오류를 표시하지 않는 한 오류는 콘솔 로그에 항상 기록됩니다. 치명적인 오류로 인해 코드가 무조건 종료되고 나머지 코드는 절대로 실행되지 않습니다. 치명적이지 않은 오류는 코드 종료를 일으키지 않지만 코드의 다른 부분에서 치명적인 오류를 유발하여 디버그하기 어렵습니다. 이 경우 점진적 오류가 발생합니다. 오류가 심각 할 때까지 알 수 없습니다. – Jay

관련 문제