gpt4 book ai didi

javascript - IE8中无法获取对象属性

转载 作者:行者123 更新时间:2023-11-28 02:48:12 25 4
gpt4 key购买 nike

我有以下我无法解决的问题。我的 WP 博客主页包含一些 YouTube 视频。我的任务是从页面上的 youtube 对象获取所有 youtube URL。

所以我做了这样的事情:

jQuery("object").each(function() {
$ytbURL = jQuery(this).find("embed").attr("src");
$ytbID = $ytbURL.match(...); //here I got error from IE8 that ytbURLis null or not and object
});

在 FF 上它可以完美地工作。

15/12 更新:以下是代码示例。

IE8 - 开发者工具:

<OBJECT codeBase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid=clsid:d27cdb6e-ae6d-11cf-96b8-444553540000 width=320 height=267><PARAM NAME="_cx" VALUE="8466"><PARAM NAME="_cy" VALUE="7064"><PARAM NAME="FlashVars" VALUE=""><PARAM NAME="Movie" VALUE="http://www.youtube.com/v/TDlqMuGqTyE?fs=1&amp;hl=en&amp;fs=1&amp;rel=0"><PARAM NAME="Src" VALUE="http://www.youtube.com/v/TDlqMuGqTyE?fs=1&amp;hl=en&amp;fs=1&amp;rel=0"><PARAM NAME="WMode" VALUE="Transparent"><PARAM NAME="Play" VALUE="0"><PARAM NAME="Loop" VALUE="-1"><PARAM NAME="Quality" VALUE="High"><PARAM NAME="SAlign" VALUE="LT"><PARAM NAME="Menu" VALUE="-1"><PARAM NAME="Base" VALUE=""><PARAM NAME="AllowScriptAccess" VALUE=""><PARAM NAME="Scale" VALUE="NoScale"><PARAM NAME="DeviceFont" VALUE="0"><PARAM NAME="EmbedMovie" VALUE="0"><PARAM NAME="BGColor" VALUE=""><PARAM NAME="SWRemote" VALUE=""><PARAM NAME="MovieData" VALUE=""><PARAM NAME="SeamlessTabbing" VALUE="1"><PARAM NAME="Profile" VALUE="0"><PARAM NAME="ProfileAddress" VALUE=""><PARAM NAME="ProfilePort" VALUE="0"><PARAM NAME="AllowNetworking" VALUE="all"><PARAM NAME="AllowFullScreen" VALUE="true">
<embed type="application/x-shockwave-flash" width="320" height="267" src="http://www.youtube.com/v/TDlqMuGqTyE?fs=1&amp;hl=en&amp;fs=1&amp;rel=0" allowfullscreen="true" wmode="transparent"></embed></OBJECT>

Wordpress:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="267" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="src" value="http://www.youtube.com/v/TDlqMuGqTyE?fs=1&amp;hl=en&amp;fs=1&amp;rel=0" /><embed type="application/x-shockwave-flash" width="320" height="267" src="http://www.youtube.com/v/TDlqMuGqTyE?fs=1&amp;hl=en&amp;fs=1&amp;rel=0" allowfullscreen="true" wmode="transparent"></embed></object>

看起来 IE8 对源 HTML 做了一些更改,或者可能是开发人员工具显示它的方式?

谢谢

山姆

最佳答案

我会尝试使用 jQuery 的很棒的 $函数而不是 jQuery ,看看它是否有效:

$('object').each(function()
{
$ytbURL = $(this).find('embed').attr('src');
$ytbID = $ytbURL.match(...);
});

我怀疑会有什么不同,但它可能会起作用。哦,这是一个非常有用的 YouTube 视频 ID 抓取器正则表达式,以防万一您需要它:(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+ .

祝你好运!

<小时/>

试试这个。另外,你能给我们一个 jQuery 解析 DOM 的例子吗?可能是因为有多个 <embed>标签,所以jQuery(this).find('embed')将返回一个数组,而不是单个对象。

jQuery('object').each(function()
{
$ytbURL = jQuery(this).children('embed:eq(0)').attr('src');
$ytbID = $ytbURL.match(...);
});

关于javascript - IE8中无法获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com