我正在尝试为http://code.google.com/p/swfobject/上的 swfobject 创建一个接口。当用户没有安装 Flash 播放器时,我正在构建所需的替代内容。这在 FF 中运行良好,但由于某种原因在 IE 中运行良好。我以前用同样的方法做了一百万次,它一直有效,我不知道为什么这次我会收到这个错误。
基本上,当页面加载时,它会调用构建替代内容的函数 $.SWFObject.embedSWF() 并调用 swfobject.embedSWF 函数。替代内容是使用如下所示的就绪函数构建的。
当调用 setupAlternateContent 函数时,错误发生在 ('#' + containerID)。
embedSWF: function(flashFilename, containerID, width, height, minFlashVersion, flashvars, params, attributes) {
//If the flashvars, params, or attributes variables were passed in and are objects, then save them, otherwise they will be empty.
settings.flashvars = (flashvars && typeof(flashvars) == 'object') ? flashvars : {};
settings.params = (params && typeof(params) == 'object') ? params : {};
settings.attributes = (attributes && typeof(attributes) == 'object') ? attributes : {};
//Setup the alternate content that will be used if the user does not have flash installed
$(document).ready(function() { setupAlternateContent(containerID); });
//Call the embedSWF function which is found in the swfobject core file
swfobject.embedSWF(flashFilename, containerID, width, height, minFlashVersion, flashUpdater, settings.flashvars, settings.params, settings.attributes);
}
function setupAlternateContent(containerID) {
//Create the innerContainer div element
var innerContainer = $.create('div', {
}).appendTo('#' + containerID).css({
font: '18px Arial, Verdana, sans-serif',
height: '130px',
width: '240px',
paddingTop: '35px',
margin: '0px auto'
});
//Put the flash image inside the innerContainer
$.create('img', {
src: SWFOBJECT_FOLDER_LOCATION + 'flash_icon.png',
alt: 'Install Flash'
}).appendTo(innerContainer).css({cursor: 'pointer'}).click(function() { window.location = 'http://get.adobe.com/flashplayer'; });
//Add a message bellow the flash icon
$.create('p', {}, 'Install Adobe Flash Player').appendTo(innerContainer);
}
IE 不喜欢 ('#' + containerID) 参数,它没有任何意义,因为我之前已经这样做了,没有问题。另外,我正在使用 $.create 来自的 jQuery DOMEC 扩展。
任何帮助表示赞赏。谢谢!
都会