Два компонента SWFUpload внутри приложения ASP.Net в частичном представлении завершаются ошибкой - PullRequest
0 голосов
/ 01 сентября 2011

Я использую SWFUpload для загрузки файлов в моем приложении ASP.NET MVC3. Моя реализация имеет два экземпляра SWFUpload на одной странице. Я создаю экземпляры всех экземпляров на главной странице, а элементы управления отображаются на частичной странице.

Главная страница:

SWFUpload.onload = function () {
        swfu1 = new SWFUpload({ /*settings*/ });
        swfu2 = new SWFUpload({ /*settings*/ });
}

Частичный вид:

<input type="text" /><span id="spanButtonPlaceholder1"></span>
<input type="text" /><span id="spanButtonPlaceholder2"></span>

Я могу открыть диалоговое окно открытия файла, но как только я нажимаю кнопку загрузки, я получаю следующее исключение из файла swfupload.js:

Исключение: сообщение об ошибке типа: movieElement.CallFunction не является функцией

Как мне избежать этого исключения? Спасибо!

1 Ответ

0 голосов
/ 11 мая 2012

1.Когда есть два swfupload, обращающихся к внешнему интерфейсу javascript к javascript, только один экземпляр swfupload сможет получить доступ к внешнему интерфейсу javascript.Другой экземпляр, который не имеет доступа к внешнему интерфейсу, выдаст ошибку javascript.

Демонстрация на Демонстрационная страница Swfupload

Эта демонстрация php работает.Попробуйте адаптировать javascript и html к вашей веб-странице MVC.Кстати, когда на одной странице есть два экземпляра flex / flash, один - ваше приложение flex / flash, другой - ваш swfupload, оба используют внешний интерфейс, у вас также будет проблема с внешним интерфейсом.

Если на одной странице есть два экземпляра Flash, вместо использования внешнего интерфейса рекомендуется локальное соединение между двумя экземплярами Flash.

2.Некоторые другие предложили заменить каждый экземпляр:

movieElement.CallFunction

на

this.movieElement.CallFunction

, чтобы firebug не останавливался на ошибке.Я пробовал это, и это не мешает IE жаловаться на ту же ошибку.

3.Если ничего не помогло, используйте два фрейма для каждого загрузчика на одной странице!

4.Для вашей информации: jQueryFileUpload.net доступно для использования.Тогда вы можете полностью избежать этой проблемы со вспышкой.

...