Ответ 1
Расширение "Открыть в браузере" полезно для форматов, поддерживаемых браузером, а не для PDF.
Как я могу заставить Firefox игнорировать заголовок Content-Disposition: attachment
?
Мне очень неприятно, что я не могу просмотреть изображение в браузере, потому что он просит его загрузить его.
Я не хочу загружать файл, просто хочу просмотреть его в браузере. Если браузер не имеет плагина для его обработки, , затем, он должен попросить загрузить.
например. У меня есть Adobe Acrobat Reader, установленный как плагин для Firefox. Я нажимаю ссылку на PDF файл, и он просит его сохранить его, когда он откроется в браузере с помощью плагина. Это поведение, если сервер не отправляет заголовок Content-Disposition: attachment
в ответ.
Firefox 3.6.6 Windows XP SP3
Расширение "Открыть в браузере" полезно для форматов, поддерживаемых браузером, а не для PDF.
Этот - это аддон Firefox, который вы ищете, чтобы исправить эту проблему.
Ну, что цель типа привязки "привязанность".
Поведение по умолчанию (когда заголовок отсутствует) должен отображаться в строке.
Возможно, есть проблема с конфигурацией в вашем браузере или плагин Reader?
Перейдите в "Инструменты" > "Параметры" > "Приложения" и измените параметр выпадающего меню "Всегда задавать", связанный с определенным типом контента, по умолчанию для вашего приложения.
Вы можете написать расширение firefox, которое удаляет заголовок расположения файлов PDF. Это было бы довольно простое расширение.
В PDF файлах есть аддон, называемый PDF-Download, который отменяет любую попытку загрузки PDF файла и позволяет пользователю решить, как они этого хотят загружен (встроен, сохранен, внешний и т.д.). Возможно, вы можете изменить его и для работы с другими типами файлов.
Я также нашел это сегодня, что полностью предотвращает загрузку Firefox на ваш рабочий стол. Фактически это исправление переадресации в папку скрытых/частных/временных файлов в MAC. Genius.
Вы можете имитировать поведение Windows, просто изменив [Firefox] загрузите каталог в
/tmp
.Чтобы сделать это, откройте панель
Firefox General preferences
, в разделеSave Downloaded Files To
выберите [выбрать].... В появившемся диалоговом окне, нажмитеShift-Command-G
, чтобы открыть диалоговое окноGo to Folder
.В этом диалоговом окне просто введите
/tmp
, нажмитеOK
, затем нажмитеSelect
в главного окна.
Поскольку я искал решение, и никакое доступное дополнение на самом деле не работало с моим Firefox 31.0 (Ubuntu), я решил попробовать создать собственное дополнение.
Код, если вы хотите архивировать аналогичную цель или просто хотите знать, как она работает.
console.log("starting addon to disable content-disposition...");
//getting necessary objects
var {Cc, Ci} = require("chrome");
//creating the observer object which alters the Content-Disposition header to inline
var httpResponseObserver = {
//gets fired whenever a response is getting processed
observe: function(subject, topic, data) {
if (topic == "http-on-examine-response") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
httpChannel.setResponseHeader("Content-Disposition", "inline", false);
}
},
//needed for this.observerServer.addObserver --> without addObserver will fail
get observerService() {
return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
},
//used to register with an observer
register: function() {
console.log("register with an observer to get response-events");
this.observerService.addObserver(this, "http-on-examine-response", false);
},
//used to unregister from the observer
unregister: function() {
console.log("unregister from observer");
this.observerService.removeObserver(this, "http-on-examine-response");
}
};
//gets called at enable or install of the add-on
exports.main = function(options, callbacks) {
console.log("content-dispostion main method got invoked");
//call register to make httpResponseObserver.observe get fired whenever a response gets processed
httpResponseObserver.register();
};
//gets called on disable or uninstall
exports.onUnload = function(reason) {
console.log("content-dispostion unloaded");
//unregister from observer
httpResponseObserver.unregister();
};
/*
//not needed!!! just test code for altering http-request header
var httpRequestObserver =
{
observe: function(subject, topic, data)
{
console.log("in observe...");
console.log("topic is: " + topic);
if (topic == "http-on-modify-request") {
var httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
httpChannel.setRequestHeader("X-Hello", "World", false);
}
},
get observerService() {
return Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
},
register: function()
{
this.observerService.addObserver(this, "http-on-modify-request", false);
},
unregister: function()
{
this.observerService.removeObserver(this, "http-on-modify-request");
}
};
httpRequestObserver.register();
*/
В качестве альтернативы вы можете получить мой xpi файл для непосредственной установки надстройки в Firefox. Если вы хотите отключить изменение "Content-Disposition", просто отключите надстройку;-).
http://www.file-upload.net/download-9374691/content-disposition_remover.xpi.html