У меня проблемы с изображениями на странице. Я использую Javascript для создания элементов, и в FireFox кажется, что строка, которую я использую для установки innerHTML, не анализируется правильно. Я увижу это, когда на страницу сервера будут запрошены недопустимые переменные GET. Они выглядят так (из обработчика ошибок PHP-скрипта):
GET[] = Array
(
[shrink] => true
[file_id] => \' file_id \'
[refresh] => \' now.getTime() \'
)
Это происходит только для 5% запросов, что затрудняет решение. Я смог воспроизвести это сам в FireFox, и Firebug покажет, что URL-адрес, который он пытается получить: https://www.domain.com/secure/%27%20+%20image_src%20+%20%27
Я где-то читал, что это может быть связано с содержимым предварительной выборки FireFox (сейчас я не могу найти его в Google), поскольку, похоже, это происходит только в FireFox. Отключение предварительной выборки в about: config действительно предотвращает возникновение проблемы, но я ищу другое решение или обходной путь, который не требует от конечных пользователей изменения их конфигураций.
Вот специфика и код:
У меня есть пустая ячейка таблицы на странице HTML. В функции JQuery $ (document) .ready () для страницы я использовал метод $ .ajax () JQuery, чтобы получить от сервера некоторые данные о том, что должно быть в этой ячейке. Он возвращает переменную file_id
, которую для простоты я только что установил ниже. Затем он устанавливает пустую ячейку таблицы, чтобы иметь изображение с src, которое указывает на страницу, которая будет обслуживать файл изображения, в зависимости от того, какой file_id передан. Эта часть кода изначально была JQuery, поэтому я изменил ее на прямой Javascript, но это ничего не помогло.
//get data about image from server
//this is actually done through JQuery's $.ajax() but you get the idea
var file_id = 12;
//create the src for the img
//the refresh is to prevent the image from being cached ever, since the page's
//javascript will be it changes
//during the course of the page's life
var now = new Date();
var image_src = 'serve_image.php?shrink=true&file_id=' + file_id + '&refresh=' + now.getTime();
//create
document.getElementById('image_cell').innerHTML =
'<A target="_blank" href="serve_image.php?file_id=' + file_id + '">' +
'<IMG id=image_element src="' + image_src + '" alt="Loading...">' +
'</A>';`
Любая помощь будет принята с благодарностью. Спасибо!