다른 domain 간의 페이지(origin check) |
두 개 이상의 프레임을 가진 페이지 간에 참조를 할 수 없는 경우가 있는데, 세가지 이유가 있습니다.
1. domain, 2. protocol, 3. port 이 다를 때, 서로 참조할 수 없습니다.
http://company.com/dir/page.html에서 아래의 URL을 참조 했을때의 결과입니다.
URL | 결과 | 이 유 |
http://company.com/dir2/other.html | 가능 | |
http://company.com/dir/inner/another.html | 가능 | |
http://www.company.com/dir/other.html | 불가능 | 다른 domain |
file://D|/myPage.htm | 불가능 | 다른 protocol |
http://company.com:80/dir/etc.html | 불가능 | 다른 port |
위의 경우 중에서 참조할 수 있는 한 가지 예외가 있습니다. domain입니다. http://www.company.com/dir/other.html 에서 document.domain = "company.com";로 지정하면 서로 참조할 수 있습니다. 이것의 실행 후에 http://company.com/dir/page.html 페이지를 참조할 수 있습니다. |
참조 가능할 때 사용할 수 있는 Properties | |||
Object | Properties | ||
Images | src, lowsrc | ||
Layer | src | ||
Location | x, y 외에 모두 | ||
Window | find | ||
Document | For both read and write: anchors, applets, cookie, domain, elements, embeds, forms, lastModified, length, links, referrer, title, URL, formName (for each named form), reflectedJavaClass (for each Java class reflected into JavaScript using LiveConnect) For write only: all other properties | ||
NN3와 NN4에서 달라진 Origin Check(domain, protocol, port가 다른 페이지간의 참조시 일어남.) | |||
1. form 이름이 있는 form은 NN4에서 origin check에 걸립니다. 이것을 피하기 위해서 폼 이름을 외부변수로 저장하여 window object의 property로 만들면 이 때부터 그 외부변수는 지정받은 폼이 됩니다. 이 외부변수로 참조할 form을 사용하면 됩니다. 2. file:URL NN3에서는 <script SRC="...">로 아무런 protocol(file:, http:)도 사용할 수 있었지만, NN4에서는 한가지 제한 사항이 새로이 생겼습니다. 그것은 <script SRC="...">의 ...에 file: 외의 protocol을 가진 화일을 열었을 때, 열린 화일에서는 <script SRC="file:...">을 사용할 수 없습니다. file:을 사용할려면 한가지를 Netscape 사용자 폴더의 prefs.js화일에 넣어 줘야 하는데, 그것은 아래입니다. 이것은 주의해서 사용해야 합니다. 보안상 문제가 있을 수 있습니다. 3. Layer Layer에서 origin check는 다른 origins의 layer에서 일어납니다. 4. Java Applet에서 Origin Check가 일어나는 때. Applet가 JavaScript를 사용할 수 있게 하는 MYSCRIPT attribute를 가지고 있는 Applet가 JavaScript를 호출할 때 일어납니다. 여기서 applet의 origin은 applet 택을 가지고 있는 페이지의 URL입니다. |
이 페이지 Origin Check는 확인 해보지 못했습니다.
Netscape 사의 설명을 번역한 것입니다.
IE에서는 다를 수 있습니다.
-- ie4에서 프레임에서 두 페이지가 같은 domain 이라도 host가 다를때 서로 페이지를 참조할 수 없습니다. ie4에서 다른 zone(지역도메인) 의 페이지를 참조하기 위해서는 두 페이지에 모두에 <script> document.domain = "mySite.com"</script>으로 같은 도메인을 지정하여야 하면 다른 호스트의 페이지를 참조할 수 있습니다. 위의 설정을 host1.mySite.com 과 host2.mySite.com 에 있는 두 페이지에서 지정을 해야합니다. 이것은 ie3.x대 에서는 없고 ie4에 추가된 cross-frame security 입니다. |
0