Я пытаюсь создать интерфейс для swfobject, найденный по адресу http://code.google.com/p/swfobject/. Я создаю необходимый запасной контент, когда у пользователя нет установленного флеш-плеера. Это нормально работает в FF, но не в IE по какой-то причине. Я сделал это таким же образом миллион раз раньше, и он всегда работал, я не могу понять, почему я получаю эту ошибку на этот раз.jQuery appendTo дает неверный аргумент в 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) аргумент, который не имеет никакого смысла, потому что я делал это раньше без проблем. Кроме того, я использую расширение JQuery DOMEC, из которого возникает $ .create.
Любая помощь приветствуется. Благодаря!
Метрополис
Какая версия FF/IE? Кроме того, можете ли вы опубликовать репродукцию на jsbin.com? –
Вот номера версий IE7/8 - FF3.5.6 – Metropolis
Код установкиAlternateContent был бы полезен. –