Php YouTube API、jQuery attr不会交换元素属性
JavaScript jQueryPhp YouTube API、jQuery attr不会交换元素属性,php,jquery,youtube,element,attr,Php,Jquery,Youtube,Element,Attr,JavaScript jQuery function display_youtube(new_url) { $('#movie_url').removeAttr('value'); $('#embed_url').removeAttr('src'); $(document).ready(function() { $('#movie_url').attr('value', new_url); $('#embed_url').attr('src
function display_youtube(new_url) {
$('#movie_url').removeAttr('value');
$('#embed_url').removeAttr('src');
$(document).ready(function() {
$('#movie_url').attr('value', new_url);
$('#embed_url').attr('src', new_url);
$('#shade').css('display', 'block');
$('#youtube_player').css('display', 'block');
$('#exit_youtube').css('display', 'block');
});
}
HTML
超链接
<a href="javascript:display_youtube('http://www.youtube.com/v/_eaToCSn7yU?f=user_uploads&app=youtube_gdata&autoplay=1');">Click Here for Fun!</a>
我所做的是为我的用户频道上的视频解析YouTube的API
上面的超链接是php生成的,旨在触发上述JavaScript函数,并将url与ids MOVICE_url和embed_url中包含的属性进行交换,就像在FF中一样,但IE只执行.css命令
我猜IE不喜欢我给PARAM和EMBED分配ID。修复了它!下面列出了我的新代码。问题是IE对Flash参数的处理不会对对象的参数执行异步刷新。它在FF中运行良好,因为它嵌入了视频,而不是将其作为对象处理 新Javascript
function display_youtube(new_url) {
$('#object_url').replaceWith('<param id="object_url" name="movie" value="' +new_url+ '" />');
$('#embed_url').replaceWith('<embed id="embed_url" src="' +new_url+ '" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="720" height="480" />');
$('#shade').css('display', 'block');
$('#youtube_player').css('display', 'block');
$('#exit_youtube').css('display', 'block');
}
function exit_youtube() {
$('#object_url').replaceWith('<param id="object_url" />');
$('#embed_url').replaceWith('<embed id="embed_url" />');
$('#shade').css('display', 'none');
$('#youtube_player').css('display', 'none');
$('#exit_youtube').css('display', 'none');
}
新HTML
<object width="720" height="480">
<param id="object_url" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<embed id="embed_url" />
</object>
我认为这里的诀窍是迫使IE在对对象执行任何操作之前依赖jQuery的指令,实际上阻止IE从一开始就缓存任何参数。FTW 看起来像一个复制品
<object width="720" height="480">
<param id="object_url" />
<param name="allowFullScreen" value="true" />
<param name="allowscriptaccess" value="always" />
<embed id="embed_url" />
</object>