Консольный код для Userscript?

У меня возникли проблемы с созданием пользовательского скрипта для страницы покупок. Я хочу автоматизировать щелчок, чтобы, когда я нахожусь на странице с сеткой элементов, скрипт выбирал продукт, соответствующий вводу пользователя. Это приведет к переходу на конкретную веб-страницу, где вы можете выбрать количество и цвет и оформить заказ. У меня есть рабочая консольная функция, которая выглядит так:

function product_click(product) {
    $(".griditem-display-name:contains("+product+")").closest("a").click();
}
product_click("Desirable here")

...где "Желательно здесь" - название товара. Когда я пытаюсь создать файл .js и загрузить его как распакованное расширение для Chrome, на веб-странице ничего не происходит. Стоит ли мне этого ожидать? Кроме того, я пробовал использовать расширение Scriptish в Firefox, и тоже ничего не происходит. Это наводит меня на мысль, что что-то не так/несовместимо с кодом и пользовательскими скриптами. Любой вклад будет принят с благодарностью, так как я в прямом недоумении. Спасибо!

// ==UserScript==
// @id             paneler store.nike.com-f9768fbb-7d51-6244-8db2-a7f9e8827a6f@scriptish
// @name           paneler - nike test
// @version        1.0
// @namespace      
// @author        
// @description    
// @include        http://store.nike.com/*
// @include        http://store.nike.com/
// @include        http://store.nike.com
// @include        https://store.nike.com/*
// @include        https://store.nike.com/
// @include        https://store.nike.com
// @include        store.nike.com/*
// @include        store.nike.com/
// @include        store.nike.com
// @include about:blank
// ==/UserScript==


function product_click(product) {
    $(".griditem-display-name:contains("+product+")").closest("a").click();
}

product_click("Force");

введите здесь описание изображения


person zweed4u    schedule 18.11.2013    source источник
comment
Вы добавили заголовок пользовательского скрипта? Пришлите нам полный код, пожалуйста.   -  person OlivierH    schedule 18.11.2013
comment
@OlivierH В настоящее время я работаю над веб-страницей Nike только для тестирования. Ссылка здесь Я обновлю вопрос с полный юзерскрипт. Код в отредактированном ответе ищет ключевое слово «Force». Этот пользовательский скрипт — это то, что у меня есть для расширения Scriptish в Firefox.   -  person zweed4u    schedule 18.11.2013


Ответы (1)


Вам нужно добавить экранированные двойные кавычки в свой селектор:

 $(".griditem-display-name:contains("+product+")").closest("a").click();

to

 $(".griditem-display-name:contains(\""+product+"\")").closest("a").click();

Не забудьте добавить запись run-at в заголовок вашего пользовательского скрипта:

// @run-at          document-end
person OlivierH    schedule 18.11.2013
comment
К сожалению, забыл включить run-at. При добавлении экранированных двойных кавычек ничего не происходит. =/ Будет ли забвение их единственной проблемой? - person zweed4u; 18.11.2013
comment
Вы хорошо переустановили пользовательский скрипт после изменения кода? Я попробовал javascript, и он хорошо работает на сайте, на который вы ссылаетесь. - person OlivierH; 18.11.2013
comment
Да сэр. Сейчас я использую Scriptish с Firefox и имею заголовок, как показано выше, плюс запуск, а затем у меня есть только функция и вызов функции, и все еще ничего. - person zweed4u; 18.11.2013
comment
В вашей консоли javascript ничего нет? Нет ошибок? Вы можете получить к нему доступ с помощью клавиши F12. - person OlivierH; 18.11.2013
comment
Ctrl+Shift+K ничего не показывает в консоли; никаких ошибок и прочего. Как будто мой скрипт не работает на веб-странице. Но еще раз, если я скопирую и вставлю код в строку консоли, а затем вызов функции с параметром после, он сработает и перейдет на веб-страницу продукта. Я совершенно сбит с толку. - person zweed4u; 18.11.2013
comment
если вы не возражаете, я спрошу, что вы использовали для тестирования сценария? Я знаю, что иногда расширения — не лучший способ использования скриптов. - person zweed4u; 18.11.2013
comment
Я только что попробовал это в консоли, и все было в порядке. Я только что протестировал его как пользовательский скрипт на своем хроме, и у меня возникли некоторые проблемы. jQuery, кажется, загружается через некоторое время на страницу, и документ кажется заново созданным или что-то в этом роде. Он нуждается в дальнейшем анализе. - person OlivierH; 18.11.2013
comment
Ммм интересно. Может быть, что-то вроде объявления переменной $ поможет? Пригодится ли функция waitforkeyelements() из-за jQuery? Еще раз спасибо. - person zweed4u; 18.11.2013
comment
давайте продолжим обсуждение в чате - person OlivierH; 18.11.2013