2013-01-07 32 views
8

Câu hỏi này có vẻ ngớ ngẩn nhưng tôi cần hiểu điều này để rõ ràng.Tìm hiểu vấn đề liên quan đến miền chéo trong Iframes

Theo hiểu biết của tôi, vấn đề tên miền chéo là khi tên miền của trang web chứa IFRAME khác với tên miền của trang web được mở trong IFRAME.

Đi theo logic đó, không có gì nên mở trong IFRAME.

Khi tôi nhúng một trang web "dưới cùng: 10700" trong IFRAME của trang web của tôi "trên cùng: 9700", nó cho lỗi. Tôi không thể xem nội dung trong IFRAME. Lỗi là Access denied in accessing property 'constructor'

Tôi nhận được lỗi khi truy cập contructor (_1.contructor)

isc.A.Function=function isc_isA_Function(_1){ 
    if(_1==null) return false; 
    if(isc.Browser.isIE&&typeof _1==this.$a7) return true; 
    var _2=_1.constructor; 
    if(_2&&_2.$k!=null){ 
    if(_2.$k!=1)return false; 
    if(_2===Function)return true 
    } 

kịch bản này được chạy khi trang chủ của đáy được mở ra trong một iframe chứa trong đầu.

Có cách nào không, tôi có thể thực hiện công việc này. Ý tôi là tôi có thể đặt cả hai tên miền giống nhau. Tôi không có quyền truy cập vào tập lệnh của trang web từ xa.

Thay đổi kích thước khung hình sau khi đặt lại khung hình sau khi xảy ra tình huống giữa nhiều miền. Nếu không, thì chắc chắn từ xa trang web đang cố gắng truy cập vào các yếu tố IFRAME .. Làm thế nào tôi có thể gỡ lỗi này ??

+5

Không phải là bạn không thể mở trang web bên ngoài miền của mình. Bạn chỉ không thể truy cập nó sau khi bạn làm. – JJJ

+0

Trong trường hợp của tôi, url trang web của tôi là "http: // top: 9700". Trang này chứa một IFRAME nhúng url "http: // botton: 10700". Tôi không thể xem nội dung trong khung nội tuyến. Lỗi là "Truy cập bị từ chối trong truy cập tài sản" constructor '"... Làm thế nào đến nó không hoạt động? – user1522820

+0

[Cùng nguồn gốc] (http://en.wikipedia.org/wiki/Same_origin_policy) bao gồm cổng và giao thức – mplungjan

Trả lời

8

Các vấn đề liên quan đến miền chéo liên quan đến giao tiếp giữa iframe. Bạn luôn có thể nhúng bất kỳ iframe nào, nhưng nếu tên miền khác nhau, iframe không thể tương tác với nhau, ví dụ: thực thi JS, sửa đổi DOM, v.v.

HTML5 cung cấp sandbox property để bật lại các tính năng cụ thể của tương tác iframe giữa nhiều miền. Hãy cẩn thận, nó có thể nguy hiểm.

+0

Nếu tôi thay đổi kích thước khung hình (thông qua mã) sau khi hiển thị, nó có được coi là giao tiếp miền chéo không? – user1522820

+0

Không. Bạn thay đổi kích thước phần tử DOM trong cửa sổ trên cùng. Điều này không liên quan gì đến bất kỳ loại giao tiếp nào. – oleq

+1

Tôi đã tìm ra vấn đề .. Vấn đề nằm trong tập lệnh của trang web từ xa. Nó đã cố gắng sắp xếp chính nó trong khung. Để làm điều đó, nó đã truy cập vào một phần tử của trang chứa khung hình ... Cảm ơn mọi người đã giúp tôi – user1522820

3

Hành vi bình thường đối với một trang xyz.com để tải trong khung nội tuyến được lưu trữ trên abc.com. Tuy nhiên, bạn không thể thay đổi bất cứ điều gì hoặc truy cập nội dung của nó thông qua mã từ abc.com mẹ.

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn đã trả lời. Tôi hiểu nó ngay bây giờ. Trong trường hợp của tôi, tôi không cố gắng truy cập bất kỳ nội dung nào của khung. Vì vậy, có lẽ đó là kịch bản từ xa đang cố truy cập trang chứa IFRAME của tôi.Làm thế nào tôi có thể gỡ lỗi, những gì đang được truy cập và sửa chữa nó? – user1522820

Các vấn đề liên quan