2010-12-12 32 views
5

Tôi hiện đang cố gắng tải một trang trong một tên miền phụ, lên tên miền chính của tôi, sử dụng iframe và có tên miền phụ gọi hàm javascript (khi dom -ready) trong miền chính của tôi, do đó tên miền chính có thể thay đổi kích thước iframe theo chiều cao của nội dung. Dưới đây là một ví dụdocument.domain "permission denied" issues with IE8

www.mysite.com (mã trong trang):

<script type="text/javascript"> 
document.domain = "mysite.com"; 
function doSomething() { 
    //do something 
} 
</script> 
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe> 

Và đối với trang web khác của tôi, test.mysite.com, đây là đoạn code trong trang:

<script> 
document.domain = "mysite.com"; 

$(document).ready(function() { 
    window.parent.doSomething(); 
}); 
</script> 

Điều này dường như chỉ hoạt động tốt với firefox, safari và chrome, nhưng không hoạt động đối với IE8. IE8 luôn cho tôi lỗi "bị từ chối" khi thực hiện cuộc gọi window.parent.doSomething()

Tôi chưa thể kiểm tra trên IE7 hoặc IE6 để xem sự cố vẫn còn, nhưng có ai gặp sự cố này không? Tôi đã bỏ lỡ một cái gì đó với cách tôi đang đặt ra mã?

Cảm ơn các bạn đã giúp đỡ.

+0

bản sao có thể có của [Quyền bị từ chối IE iFrame] (http://stackoverflow.com/questions/2953158/permission-denied-ie-iframe) – alex

Trả lời

1

Dưới đây là một chủ đề với rất nhiều ý kiến ​​về một số vấn đề có thể:

Note mà tôi đã không kiểm tra này, vì tôi không có IE. Thật không may, không phải dường như thuyết phục từ quan điểm của tôi - hãy thử nó và xem nó có phù hợp với bạn hay không.

Vì vậy, từ bài viết ở trên, có vẻ như có hai nguyên nhân có thể:

  • Các bài cáo buộc IE yêu cầu tất cả các tài liệu có cùng một tên miền. Nếu bạn có nhiều tài liệu hơn (iframes và các loại khác), hãy thử xóa chúng và thử nghiệm chỉ với hai (chính và khung nội tuyến)
  • Xem nhận xét cuối cùng trong bài đăng - đó có thể chỉ là điều kiện chủng tộc. Hãy thử đặt nó trong một setTimeout với một vài giây chờ đợi sau khi cả trang đã thiết document.domain với giá trị tương tự
2

document.domain “cho phép từ chối” các vấn đề với IE8 SOLVED !!

giống như người dùng khác đã nói, chỉ cần đặt thời gian chờ của một vài giây sau khi đặt document.domain nơi khung nội tuyến nằm trên trang và sau đó gọi trang thứ hai của bạn trong khung nội tuyến.

bạn cần phải thiết lập giá trị SRC của iframe của bạn, một vài giây sau khi bạn đặt document.domain trên IE8 và nó sẽ làm việc ..

1

tôi chạy trong cùng một vấn đề và sử dụng một thời gian chờ không giải quyết vấn đề. Khi tôi đã có một trang web khác có cài đặt tương tự, tất cả đều hoạt động tốt, tôi đã mở cả hai cửa sổ cạnh nhau và nhận thấy trong thanh trạng thái ở phía dưới một cửa sổ nằm trong "Mạng nội bộ cục bộ" trong khi trang còn lại nằm trong "Trang web đáng tin cậy ".

Điều này dẫn tôi đến một điểm khác cần kiểm tra: đảm bảo rằng cả hai miền phụ xuất hiện trong cùng một Vùng bảo mật trong Thuộc tính bảo mật Internet của IE! Nếu không, bạn sẽ có lỗi "Bị từ chối".

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