Страницы: 1
Здравствуйте, уважаемые!
Возникла у меня потребность написать скрипт под greasemonkey.
В javascript я не силен, поэтому подобная ситуация вызывает полное недоумение:
// ==UserScript== // ==/UserScript== var logo = document.createElement("div"); logo.innerHTML = '<div>' + '<script type="text/javascript">function checkcat(cn, mode) {' + 'alert("Значение: " + cn + " Состояние: " + mode);}</script>' + '<form>' + '<input type=checkbox id=pl_ua name=ua value=9 onclick=checkcat(this.value, this.checked)><label for=pl_ua>Страна</label>' + '</form>' + '</div>'; document.body.insertBefore(logo, document.body.firstChild);
С помощью этого скрипта я планирую автоматизировать некоторые рутинные операции по заполнению формы.
В данном случае, вместо того, чтобы каждый раз выбирать значения в выпадающем списке <select multiple> я буду хранить их в чекбоксах в своем расширении.
При щелчке на чекбоксе, функция проверяет его состояние и в зависимости от true / falshe будет делать в списке с checked'ом аналогичное действие.
Но для этого мне нужно передать в функцию сразу два параметра: value и checked.
Как только я дописываю в любом месте второй параметр - всё. Т.е. ничего не происходит.
А вот в таком виде работает:
// ==/UserScript== var logo = document.createElement("div"); logo.innerHTML = '<div>' + '<script type="text/javascript">function checkcat(cn) {' + 'alert("Значение: " + cn);}</script>' + '<form>' + '<input type=checkbox id=pl_ua name=ua value=9 onclick=checkcat(this.value)><label for=pl_ua>Страна</label>' + '</form>' + '</div>'; document.body.insertBefore(logo, document.body.firstChild);
Помогите, пожалуйста.
Отсутствует
М-да. У вас получлось, что у input есть атрибут onclick со значением «checkcat(this.value,» и атрибут со странным названием «this.checked)». Как по вашему браузер должен был догадаться, что на самом деле это одно значение атрибута с пробелом? Правильно, его надо взять в кавычки!
Isn't it ironic... don't you think? — Alanis Morissette
Отсутствует
Вот спасибо!
Я бы еще думал и думал... мол, скобки круглые там есть.
А вот, если бы, из элементарного уважения к порядку, я бы обрамлял значения атрибутов в кавычки, такого бы не произошло.
Разрешите тут задать еще несколько вопросов?
1. В той форме, которую я собираюсь автозаполнять есть два текстовых поля с именами: xfield[source] и xfield[linked] соответственно (для оформления ссылки на источник материала).
Как и подсказывала интуиция, простому
они не поддаются.
Вот я думаю, может нужно сначала массив объявить?
2. Существует ли возможность вносить изменения в скрипт из этого же скрипта.
Например, скрипт, что я пытаюсь написать, должен хранить довольно большой перечень групп значений, который часто дополняется.
Можно, конечно, редактировать скрипт в моем любимом Winsyntax 2.0 (т.к. он поддерживает utf-8), но хотелось бы так:
заполнил форму -> нажал кнопку "сохранить новый шаблон" скрипта -> скрипт считал значения полей и дописал данные сам в себя.
Это возможно?
Отсутствует
Первый вопрос решил осуществлением доступа через
Но второй вопрос становиться все более остро: имеется более 200-от групп данных.
Каждая группа как минимум из 5-ти элементов (теги, фрагмент шаблона, название источника, адрес источника).
Хранить это всё непосредственно в коде скрипта, кажется нерациональным.
Как поступить правильно?
Где хранить данные?
Отсутствует
julios
Насколько я помню, некоторые скрипты могли хранить часть данных где-то внутри профиля. Значит, наверное, можно. Скорее всего, это какой-то отдельный файл, типа файлов с сессиями.
Отсутствует
Страницы: 1