nickf
의 예제를 사용하십시오. here IE7에 표시된 사이트에서 iframe을 대체 할 수있는 요소를 만들었습니다. 사무실의 모든 컴퓨터가 IE8로 업그레이드 될 때까지는 단기간의 갭 (stop-gap)이 생겨서 서버 측 솔루션으로 귀찮게하지 않습니다.jQuery가 IE7에서 작동하지 않는 요소를 만들었습니다.
목표는 YouTube의 소스 코드를 가져 와서 사이트의 모든 단일 비디오를 대체하지 않고도 기존의 소스 코드로 변환하는 것입니다.
var w = $('iframe').width(),
h = $('iframe').height(),
src = $('iframe').attr('src').split('/')[4];
$('iframe').after('<div class="iframediv"></div>');
$('<object></object>', {width: w, height: h})
.append($('<param />', {name: "movie", value: "http://www.youtube.com/v/" + src + "?hl=en_US&version=3"}))
.append($('<param />', {name: "allowFullScreen", value: "true"}))
.append($('<param />', {name: "allowscriptaccess", value: "always"}))
.append($('<embed />', {src: "http://www.youtube.com/v/" + src + "?hl=en_US&version=3", type: "application/x-shockwave-flash", width: w, height: h, allowscriptaccess: "always", allowfullscreen: "true"}))
.appendTo($('.iframediv'));
이 코드의 작동 예는 내가에 문제가 있어요 생성 된 요소가 IE7에서 작동하지 않는 것입니다 jsfiddle
에 여기에서 찾을 수 있습니다. <object>
생성 코드가 손상되어 jQuery가 작동을 멈추게하는 것처럼 보이지만 Chrome에서는 정상적으로 작동합니다. 이 작업을 수행하는 데 필요한 IE7 특정 해결 방법이 있는지 확실하지 않습니다.
편집 : 지금 시험용으로 $('iframe').remove();
줄을 일부러 버렸습니다.
편집 : 내 수정 -이 문제를 자신했다
if($('html').hasClass('ie7'))
{
var w = $('iframe').width(),
h = $('iframe').height(),
ytsrc = $('iframe').attr('src').split('/')[4];
$('iframe').after('<div class="iframediv"></div>');
$('<embed />', {width: w, height: h, src: "http://www.youtube.com/v/" + ytsrc + "?hl=en_US&version=3", type: "application/x-shockwave-flash", allowfullscreen: "true", allowscriptaccess: "always"}).appendTo($('.iframediv'));
$('iframe').remove();
}
'
'$ .parseHTML (htmlstring) '에 대한 하나의 호출을 사용하여 개체/embed를 생성하는 것이 좋습니다. –
현재이 작업을 알아내는 중 ... 아직 jQuery 또는 Javascript에 익숙하지 않지만 제안 사항에 대해 모두 감사드립니다. . – MacSalty