Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   генерация UserScript (https://javascript.ru/forum/misc/12581-generaciya-userscript.html)

Cepin 24.10.2010 17:40

генерация UserScript
 
Здравствуйте, возникла следующая проблема, всю голову себе сломал.

Задача: Написать выдачу генерируемого UserScript с настройками.
Пользователь заходит на страницу, выбирает нужные настройки, жмёт сгенерировать и ему должен установится скрипт.

Но сделать такое не получается и вот почему.

Opera - сохранять нужно вручную скрипт в папку.
Firefox, Chrome - перехват адреса скрипте и предложение его установить.

Сначала пошел по стандартному сценарию, который казался мне верным.
Выдачу скрипта сделать через

header('Content-Type: text/javascript; charset=utf-8');
header('Content-Disposition: attachment; filename="script.user.js"');


Opera - нормально.
Firefox,Chrome - не перехватывают.

Ладно, значит им нужно, чтобы script.user.js был в адресной строке.



Попытка номер два.
Делаю в .htaccess исполняемый файл client.user.js - как пхп.
В форме генерации шлю на него данных.

Итог:
Opera,Chrome - нормально.
Firefox - Отказывается слать POST запрос на js файл. Форма постовая, но фаерфокс видит js расширение и шлет GET запрос.


Пробую следующий способ:
.htaccess
RewriteRule client.user.js gen.php


Делаю чтобы при запросе скрипта js, срабатывал скрипт gen.php

При нажатии генерации, происходит сохранение скрипта и пользователя редиректит на client.user.js (который обрабатывает файл gen.php)

Opera,Chrome - нормально обрабатывают скрипт.
Firefox - показывает содержимое скрипта, делает запрос на установку, но кнопка "Установить" не работает!

Применять способ генерации временных ссылок совсем не хочется для такого простого скрипта. Думаю, может другие способы есть выдачи пользовательских скриптов?

B@rmaley.e><e 24.10.2010 17:58

А Огнелис вообще устанавливает расширения с Вашего сервера? Может там в настройках чего покрутить надо?

Cepin 24.10.2010 18:03

Да, устанавливает и другие скрипты и этот если напрямую запихнуть его в адресную строку.

Но непонятно, почему так фаерфокс срабатывает.

<form method="post" action="client.user.js">


Во всех браузерах, отправляет POST запрос на этот файл, Firefox - отправляет GET.

Добавляю знак "?"
<form method="post" action="client.user.js?">


Firefox - Отправляет POST запрос, но скрипт уже не перехватывается гризманкой.

B@rmaley.e><e 24.10.2010 19:15

Если в официальной справке об этом ничего не говорится, то это либо:
1. Баг. Надо зарепортить.
2. Фича.
В обоих случаях придется как-то бороться с этим. Например - записывать параметры в куки, и отправлять GET запрос.


Часовой пояс GMT +3, время: 13:11.