Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   скрипт \ dll \ для FF (https://javascript.ru/forum/job/60724-skript-%5C-dll-%5C-dlya-ff.html)

jfaster 16.01.2016 15:18

скрипт \ dll \ для FF
 
Доброго времени суток . Имеется потребность в написании, даже не знаю как назвать.. назовём функционал под firefox для изменения "разрешения" передаваемое браузеру т.е.

Имеем разрешение 1280x1024 4:3 .. и необходимо чтобы сайт(ы) определяли к примеру 1920x1028 . Приветствуются варианты решения и цена вопроса .

Грубо говоря чтобы можно было изменить
screen.height;
screen.width;
Реально ли ?

SDI 16.01.2016 17:29

Object.defineProperties(
    screen, 
    {
        height: {
            value: 1000,   // height value
            writable: true
        }, 
        width: {
            value: 200,    // width value
            writable: true
        }
    }
);

jfaster 16.01.2016 18:11

Цитата:

Сообщение от SDI (Сообщение 403991)
Object.defineProperties(
    screen, 
    {
        height: {
            value: 1000,   // height value
            writable: true
        }, 
        width: {
            value: 200,    // width value
            writable: true
        }
    }
);

Вы имели ввиду userjs ? пробовал .. но переменные всёравно берутся другие .
Как вариант нужно попытаться обмануть screenresolution(dot)org к примеру разрешение текущее 1920x1028 и на сайте js увидел 1920x1028 .. но нужно чтобы текущее разрешение настоящее было 1920x1028 а на сайте js увидел 1280x1024 . Без изменений в сайте естественно .

SDI 16.01.2016 18:46

Код ниже оформленный как браузерное расширение для chrome, обманул указанный сайт.

var changeScreen = function(w, h) {
    Object.defineProperties(
        screen,
        {
            height: {
                value: h,   // height value
                writable: true
            },
            width: {
                value: w,    // width value
                writable: true
            }
        }
    );
}

setTimeout(function() {
    var width = 200,
        height = 100,
        script = document.createElement('script'),
        el = document.head || document.body;

    el.appendChild(script);
    script.innerHTML = '(' + changeScreen.toString() + ')(' + width + ', ' + height + ');'
}, 0);


Создайте файл change_screen.js c данным кодом и рядом файл manifest.json со следующим кодом:
{
    "name": "Change Screen",
    "version": "1.0.0.0",
    "manifest_version": 2,
    "description": "Change Screen",

    "content_scripts": [
        {
            "js": [
                "change_screen.js"
            ],
            "matches": [
                "http://*/*",
                "https://*/*",
                "file://*"
            ],
            "run_at" : "document_start"
        }
    ],

    "permissions": [
        "http://*/*",
        "https://*/*",
        "<all_urls>"
    ]
}


И в режиме разработчика поставьте расширение в любой Chromium-браузер.

jfaster 16.01.2016 18:57

Цитата:

Сообщение от SDI (Сообщение 404002)
Код ниже оформленный как браузерное расширение для chrome, обманул указанный сайт.

var changeScreen = function(w, h) {
    Object.defineProperties(
        screen,
        {
            height: {
                value: h,   // height value
                writable: true
            },
            width: {
                value: w,    // width value
                writable: true
            }
        }
    );
}

setTimeout(function() {
    var width = 200,
        height = 100,
        script = document.createElement('script'),
        el = document.head || document.body;

    el.appendChild(script);
    script.innerHTML = '(' + changeScreen.toString() + ')(' + width + ', ' + height + ');'
}, 0);


Создайте файл change_screen.js c данным кодом и рядом файл manifest.json со следующим кодом:
{
    "name": "Change Screen",
    "version": "1.0.0.0",
    "manifest_version": 2,
    "description": "Change Screen",

    "content_scripts": [
        {
            "js": [
                "change_screen.js"
            ],
            "matches": [
                "http://*/*",
                "https://*/*",
                "file://*"
            ],
            "run_at" : "document_start"
        }
    ],

    "permissions": [
        "http://*/*",
        "https://*/*",
        "<all_urls>"
    ]
}


И в режиме разработчика поставьте расширение в любой Chromium-браузер.

:thanks: Аплодирую стоя . То что нужно было добиться . Но как можно это же перекинуть для FF ?

SDI 16.01.2016 18:59

Прошу прощение, не обратил внимание что для ff-нужно.
Но там принцип думаю такой же. Найти нужный window в расширении и изменить window.screen

jfaster 16.01.2016 19:13

Цитата:

Сообщение от SDI (Сообщение 404004)
Прошу прощение, не обратил внимание что для ff-нужно.
Но там принцип думаю такой же. Найти нужный window в расширении и изменить window.screen

Отправил лс .

SDI 16.01.2016 19:37

Сюда тоже отвечу. С расширениями под ff у меня все плохо.
Может кто-то другой поможет.

SDI 17.01.2016 00:31

Поковырялся в FF.
Вообщем вот:
https://github.com/Skychko/ff-extension-screen-change

.xpi - файл с расширением;
чтобы его поставить нужно убрать флаг в фф (запрет установки неподписанных расширений)
Подробнее тут:
https://support.mozilla.org/en-US/kb...urce=inproduct

Остальные файлы нужны для Firefox Addon SDK
Как с ним работать тут:
https://developer.mozilla.org/en-US/Add-ons/SDK


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