Heroes of User Scripts

  
: [1]

: просто фичи  ( 2130 )

0 1 .

HAPblB [15]

  • : 36
    • Молот Ведьм
просто фичи
« : 02 2010, 01:15:01 »

как-то задумался что е ть ряд вещей не всем известные, даже тем, кто пишет скрипты.

захотелось рассказать

1. первая фича больше к тем, кто балуется написанием скриптов. есть частая проблема с обновлением скрипта. скажем браузер не всегда понимает что пользователь  хочет поставить более новую версию скрипта и соотвественно чтоб ее поставить несчастному пользователю приходится удалять старую версию и после того ставить новую. где-то как-то случайно узнал и меня пока не подводил такой вариант

в коде скрипта тупо объявлять такую переменную сразу после заголовка скрипта

var version = '0.5';


в последующих версиях достаточно ее менять и браузер будет идентифицировать как новую.
пример
: []
// ==UserScript==
// @name HWM_Custom_Head
…………
// @namespace HWM
// ==/UserScript==
   
var version = '0.5';
function main(e){   
……….

2. вторая версия может быть полезна счастливым любителям хрома — как известно там не все что позволяет класическая мартышка, работает. Часто в таких случаях помогает такой вариант — тупо в теле скрипта сразу после заголовка вставляете следующий код
: []
if (typeof GM_deleteValue == 'undefined') {
GM_addStyle = function(css) {
var style = document.createElement('style');
style.textContent = css;
document.getElementsByTagName('head')[0].appendChild(style);
}

GM_deleteValue = function(name) {
localStorage.removeItem(name);
}

GM_getValue = function(name, defaultValue) {
var value = localStorage.getItem(name);
if (!value)
return defaultValue;
var type = value[0];
value = value.substring(1);
switch (type) {
case 'b':
return value == 'true';
case 'n':
return Number(value);
default:
return value;
}
}

GM_log = function(message) {
console.log(message);
}

GM_registerMenuCommand = function(name, funk) {
//todo
}

GM_setValue = function(name, value) {
value = (typeof value)[0] + value;
localStorage.setItem(name, value);
}
}

говорят что в подавляющем большинстве случаев помогает, сам правда не юзал. но по заверениям обитателей одного форума - работает весьма


==============



ЕЕсли кто еще знает что сказать - не стесняемся

xo4yxa [14]

  • : 47
Re: просто фичи
« #1 : 02 2010, 14:19:39 »

в комментах на сайте вот что мне оставляли:

Чтобы запустить ЛЮБОЙ скрипт под оперу или хром:
1. Удалите из него все комментарии на кириллице
2. Добавьте в начало скрипта (после // ==/UserScript==) следующее:

: []
if (!this.GM_getValue || this.GM_getValue.toString().indexOf("not supported")>-1)
{
this.GM_getValue=function (key,def)
{
return localStorage[key] || def;
};
this.GM_setValue=function (key,value)
{
return localStorage[key]=value;
};
}

т.е. чем то перекликается с советом номер два
и в принципе наверное объявление стилей лишнее для запуска
: [1]