2011-10-19 1 views
6

div를 현재 페이지에로드하고 그 안에 iframe을 배치하는 책갈피가 있습니다. 북마크릿은 IE9를 제외한 모든 브라우저에서 꿈처럼 작동합니다. 심지어 이전 버전의 IE에서 작동합니다. 다른 어떤 사람이 (북마크 관련이없는) 여기에 비슷한 문제가 있었다

http://idc.anavallasuiza.com/project/bookmarklets 

:

나는 다음과 같은 북마크 프레임 워크를 사용하고 내가 이해 해요 지금까지

https://forum.jquery.com/topic/retrieved-html-data-type-with-jquery-ajax-in-ie9-scripts-tags-sources-could-not-be-loaded 

을 그 내 북마크릿의 jQuery가 IE9에서 제대로로드되지 않습니다.

북마크릿은 자체 jQuery를로드하려고하므로 북마크릿이 초기화 될 때 특정 효과가 실행될 수 있으므로 프로그래밍이 쉽습니다.

iFrame 페이지도 jQuery를로드합니다 (iFrame의 콘텐츠가 없으면 제대로 작동하지 않습니다).

나는 최신 jQuery를 사용하고 있습니다 :

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js 
내가 IE9가 다른 브라우저하지 않습니다 이러한 스크립트 오류가 발생 이유를 알고 싶습니다

? IE9에서 jQuery가 제대로로드되지 않는 이유는 무엇입니까?

모든 통찰력을 주시면 감사하겠습니다.

답변

6

저는이 문제로 몇 시간을 보냈으며, 마침내 제가 생각하기에 당신에게 도움이 될 해결책을 찾았습니다.

$frames = $(*html_including_frames_here*); 
$div = $('<div></div>'); 
$div.append($frames); 
$('body').append($div); 

는 DOM에 다음 DOM에이 사업부를로드하지의 사업부로로드 하나 이상의 프레임이 모든 원인이 ** : 여기

나를 위해 문제의 원인이되는 코드의 단순화 된 버전입니다 문제가 생겼다. 프레임은 JS 스크립트를로드하지 않으므로 모든 것이 (jQuery, JSON 등) 정의되지 않습니다.

이, 다른 한편으로는, 작동 :

$frames = $(*html_including_frames_here*); 
$div = $('<div></div>'); 
$('body').append($div); 
$div.append($frames); 

여기에 유일한 차이점은 내가 먼저 DOM에 사업부를 배치 한 다음에 프레임을로드하고 있다는 점이다. 어떻게 든 그것이 모든 차이를 만듭니다.

+1

남자 ... 대단히 감사합니다! 나는 많은 방향으로 총을 쏘고 있었고, IFrame에 대해서만 생각했다. 나는 다른 DOM을 가졌지 만 여전히 iframe이 페이지에 인쇄되어이 버그를 생성했다. 그래서 지금까지 iframe은 JQ를 사용하여 빌드되었고 이제는 하드 코딩되어 있습니다. jq를 사용하여 src 코드를 처리합니다. 이건 내 벌레를 무너 뜨 렸어. 나에게 길을 보여 주셔서 감사합니다. – neoswf

+1

도와 드리겠습니다! 나는이 곳에서 열심히 싸웠다. 그래서 나는 당신에게 약간의 시간을 절약 할 수있어서 기뻤다. 다른 사람들이 그것이 합법적이라고 인식 할 수 있도록 대답을 수락하십시오. :) 편집 : 당신이 원래 포스터 줄 알았는데. 죄송합니다. –

1

내 질문에 감사드립니다. 같은 문제가있었습니다. 처음으로 jquery.com (http://code.jquery.com/jquery-1.7.1.js)에서 jquery를로드하여 수정했습니다. IE9가로드됩니다. 어쩌면 마이크로 소프트가 일부 google-apis를 차단하고 있습니까? 매우 흥미 롭습니다.

+0

항상 최신 jquery 버전을 원하면 http://code.jquery.com/jquery-latest.min.js – algorhythm

+0

또는 http://ajax.microsoft.com/ajax/jquery/jquery-1.7.1을 시도하십시오. .min.js – algorhythm