2013-06-30 18 views
6

Tôi có nội dung khung nội tuyến bao gồm jQuery và phần jQuery của nội dung trong iframe không hoạt động trong IE (phần không được sử dụng jQuery đang hoạt động tốt và mọi thứ hoạt động tốt Chrome và Firefox).jQuery trong iframe không hoạt động trong IE

Dưới đây là các mã:

<!DOCTYPE html> 
<html> 
<head> 
    <title>iframe content</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 
    <h1>This heading is showing up just fine.</h1> 
    <div id="jQuery-generated-content"> 
      <!-- content dynamically generated by jQuery plugin This part is not showing in iframe in IE --> 
    </div> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script> 
    <script src="pathTojQueryPlugin.js"></script> 
    <script type="text/javascript"> 
     jQuery.codeToInitiatePlugin 
    </script> 

</body> 
</html> 

tôi đã cố gắng chèn mã jQuery trong đầu, ngay sau thẻ body, với cả hai đường dẫn tương đối và tuyệt đối, nhưng không có may mắn. Tôi sẽ đánh giá rất cao nếu có ai biết bất kỳ cách giải quyết cho điều này hoặc những gì gây ra IE để không đọc jQuery.

Cảm ơn trước!

+0

Tính năng này có hoạt động nếu bạn tải trang bình thường thay vì trong khung nội tuyến không? – Barmar

+0

Đây có phải là mã để iframe không? – raam86

+1

Có, nó hoạt động nếu tôi tải trang bình thường, không phải là nội dung của khung nội tuyến. – hotate17

Trả lời

5

Tôi cũng gặp phải vấn đề tương tự cách đây một thời gian. Vấn đề là do IE không thể truy cập thư viện jquery từ bên trong khung nội tuyến và do đó nó không thể đọc mã jquery. Bước đi duy nhất sẽ là chuyển đổi mã jquery thành javascript.

Cập nhật:

Sử dụng phiên bản jQuery khác cũng có thể giải quyết được sự cố. Hoặc một thư viện jQuery khác có thể được sử dụng cách khác.

+1

Hoặc bao gồm nó trong iframe ... – raam86

+2

Bao gồm thư viện jquery cũng sẽ không giúp ... tôi đã thử điều đó. Bạn cũng có thể thử – Sid

+0

Cảm ơn nhận xét, Sid. Nhưng trong trường hợp đặc biệt này, tôi cần sử dụng jQuery, vì tôi cần plugin jQuery mà tôi đang sử dụng bên trong iframe, vì nó có hiệu ứng/chức năng chính xác mà tôi cần.Và nó là quá khó khăn cho tôi để viết một cái gì đó tương tự/tái tạo các chức năng/hiệu ứng trong javascript ... – hotate17

3

Có thể bạn đã giải quyết vấn đề này theo cách khác, nhưng chỉ trong trường hợp ai đó cũng tìm thấy bài đăng này.

Đây là một mẹo nhỏ có thể giúp ích trong một số trường hợp nhất định.
Thêm iframe bên này trước khi sử dụng jQuery:

if (window.jQuery) { 
    jQuery = window.jQuery; 
    $ = window.jQuery; 
} 

Tuy nhiên trang chứa iframe phải có jQuery. (Và tốt nhất là phiên bản tương tự)

3

Câu trả lời thực tế cho điều này, như trạng thái hotate17 trong nhận xét, là anh/cô ấy đang tải nội dung jQuery từ CDN, trong trường hợp này là CDN của Google. Tải các tài sản jQuery từ cùng một máy chủ và do đó cùng một URL như nguồn iFrame cố định vấn đề của mình và của tôi quá, cảm ơn hotate17!

http://www.sandiegosoftware.net/blog/script5-access-is-denied-error-in-internet-explorer-loading-jquery/

4

Từ một câu hỏi SO:

Đây là một legit jQuery 1.10.1 lỗi: http://bugs.jquery.com/ticket/13980.

Source

Trong trường hợp của tôi, sử dụng ...

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 

..solved vấn đề. Nó cũng xảy ra là phiên bản tương tự như trang mẹ (cảm ơn Avigon).