Я сталкиваюсь с проблемой Javascript / Firefox.
Соответствующий код указан ниже.
В основном происходит следующее:
1. document.ready запускает и инициирует AJAX-запрос (к document.domain: 8484 / getTrack.php или как угодно)
2. Ответ AJAX получен. Этот ответ содержит URL (тот же домен) расположения изображения. Итак, sourceImage.onload установлен, затем sourceImage.src установлен
3. sourceImage.onload срабатывает. Идея состоит в том, чтобы сохранить в памяти изображение с измененным размером, которое идеально соответствует холсту, на котором оно будет нарисовано. Я хочу сохранить это изображение с измененным размером в памяти, потому что я буду много раз записывать его (часть) на свой холст, и каждый раз изменение размера должно быть намного медленнее.
var SourceImage = new Image();
var preparedImageData;
sourceImage.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = 100; canvas.height = 100;
var ctx = canvas.getContext("2d");
// resize image
ctx.drawImage(sourceImage, 0, 0, sourceImage.width, sourceImage.height, 0, 0, canvas.width, canvas.height);
// save as imagedata
try {
try {
preparedImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
}
catch (e) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
preparedImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
}
}
catch (e) {
throw new Error("unable to access image data: " + e)
}
}
Первый бросок вызова getImageData и вызов enablePrivilege также генерируют немедленно. Текст ошибки: «Сценарию из« http://127.0.0.1" было отказано в привилегиях UniversalBrowserRead. ». Я проверил, и кажется, что эти сообщения должны появляться только при попытке получить доступ к getImageData для изображения из другого домена, хотя это не так. (верно?). У меня нет строгой политики безопасности (все по умолчанию), Firefox 4.0. Тот же код отлично работает в Chrome.