"对象没有't支持这种性质或方法“;在IE 8中.在调试中执行精细
"Object doesn't support this property or method" in IE 8. Executes fine in debug
我不知道我是不是很愚蠢,错过了一些显而易见的东西,但:
我有一个页面有以下脚本:
$(document).ready(function() {
$('.fsBtn').click(function(e) {
$("#fullscreenVideo").show();
player.stopVideo();
playerFS.playVideo();
});
});
在每个浏览器栏IE8中,这将正常加载。但是在IE8中调试器将出现:Object doesn't support this property or method Line 144
是playerFS.playVideo()
我检查了一下,它已经申报了。奇怪的是,如果我进入IE的脚本调试器并运行playerFS.playVideo()
,它将被IE接受
为什么这个脚本不在代码中执行,却允许我在调试中很好地执行它?
以下是我迄今为止采取的步骤:-将脚本放在文档中,以确保其正常。-将脚本放置在页面中,而不是外部JS文件中。-IE调试模式手动运行脚本。
任何帮助都将不胜感激,这真的让我很为难。如有必要,可以提供更多信息。
编辑:播放器和播放器FS都是这样定义的:
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '360',
width: '640',
videoId: V_ID,
playerVars: playerParams,
events: {
// 'onReady': onPlayerReady,
// 'onStateChange': onPlayerStateChange
}
});
//exact Same code again but for playerFS instead of player
}
在另一个游戏中,上面写着"玩家"的部分是"玩家FS"。
播放器的HTML页面和JS:http://pastebin.com/ZbBwKg9a
youtube API很难使用JSAPI嵌入到隐藏的div中。
在隐藏视频之前,请尝试添加一段初始化视频的代码,以确保视频创建正确。
当玩家准备好进入dom时,尝试执行您的代码
您为玩家onReady事件提供了一个evemtHandler,因此,您所要做的就是将所有代码打包到一个名为"onPlayerReady"的函数中。
您的代码有一大堆只能在低于9的IE版本中运行的东西。我会在那里寻找问题:
<!--[if IE lt 9]>
<script>
if($.browser.msie){
var params = { allowScriptAccess: "always" };
var atts = { id: "player" };
swfobject.embedSWF("http://www.youtube.com/v/_4nFh0CRNgo&enablejsapi=1&playerapiid=ytplayer&version=3&cc_load_policy=1&controls=0&modestbranding=0&rel=0&showinfo=0",
"player", "640", "360", "8", null, null, params, atts);
}
var paramsfs = { allowScriptAccess: "always" };
var attsfs = { id: "playerFS" };
swfobject.embedSWF("http://www.youtube.com/v/_4nFh0CRNgo&enablejsapi=1&playerapiid=ytplayerFS&version=3&cc_load_policy=1&controls=0&modestbranding=0&rel=0&showinfo=0",
"playerFS", "940", "660", "8", null, null, paramsfs, attsfs);
legacyCode = true;
subtitlesFromTranscript = true;
</script>
<![endif]-->
这是由未为HTML5设置的文档元素标记引起的。IE 9+自动将浏览器倒退到HTML4 for!DOCTYPE HTML PUBLIC"//W3C//DTD HTML 4.0过渡//EN"。。。等等用于IE 9+。HTML5工作在IE 9+文档元素标签必须是!DOCTYPE HTML。
我在stackoverflow.com上添加了这条注释,因为微软开发网络不知道为什么.play在IE 9上不适用于他们的浏览器IE 9。
我喜欢HTML5,但使用section、nav、header、footer而不是div会再次带来大量浏览器不兼容!谷歌的html5shiv不是一个解决方案。
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 为什么我得到错误IE修剪方法是't支持
- 元素.appendChild()插入IE.变通方法?(与innerText与textContent相关)
- .html() 方法的 jQuery 在 IE 9 中无法正常工作
- Javascript 错误:对象在 IE 浏览器中不支持此属性或方法
- 有没有一种方法可以阻止IE中键盘快捷键的传播
- Jquery没有在firefox浏览器中调用Webservice方法,它在Chrome和IE中运行良好
- JQuery.on(“mouseover”)方法不适用于IE
- 嵌套文档.writes和第三方广告在IE中不起作用!!!!任何安全的解决方法
- "对象没有't支持这种性质或方法“;在IE 8中.在调试中执行精细
- JS:服务器2008 R2的IE 10中未实现音频方法
- 简斯 |在IE中,addEventListener方法来自哪个接口
- 对象不支持此属性或方法 - IE 7/8
- (仅在IE中)SCRIPT65535:对方法或属性访问的意外调用.主.js,第 152 行字符 28
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- 如何处理IE 8中缺少JavaScript Object.bind()方法
- 是否有json的替代方法.ie的解析器
- 对象不支持此属性或方法IE"Javascript错误,可能是由于使用hasOwnProperty
- SCRIPT438:对象不支持属性或方法IE
- internet explorer-Javascript表单提交:Object dos'不支持此属性或方法(IE