2017-02-21 5 views
-1

Редактировать: Огромное спасибо за все усилия, получил весь мой код, работающий прямо сейчас!Триггер не работает

Я хочу вызвать щелчок на https://shop.adidas.ae/en/stan-smith-shoes/S82255.html (чтобы сделать ботовую обувь). Почему этот код не работает, чтобы вызвать кнопку типа размера?

setTimeout(function() { 
    $('select.product-type.js-size-type').trigger('click'); 
}, 1000); 

Это кнопка выбора:

<select class="product-type js-size-type"> 

Это то, что говорит хром консоль

caught TypeError: Cannot read property 'click' of null 
    at <anonymous>:2:41 

Обновлено:

Мой манифест расширения хром:

{ 
    "name": "name", 
    "description": "test", 
    "version": "1.0", 
    "manifest_version": 2, 
    "permissions": ["*://*/*"], 
    "content_scripts": [ 
    { 
     "matches": ["*://*.adidas.ae/*"], 
     "js": ["jquery.js", "yeezyCopper.js"] 
    } 
    ], 
    "background": { 
    "scripts": ["background.js"], 
    "persistent": false 
    } 
} 

YeezyCopper.js:

setTimeout(function() { 
    $('select.product-type.js-size-type').trigger('click'); 
}, 1000); 

Заранее спасибо!

+1

попробуйте включить его: '$ (function() {$ ('select.product-type.js-size-type'). Trigger ('click');})' –

+0

1000 может быть недостаточным , Используйте более длительный тайм-аут или MutationObserver для наблюдения за элементами. [Есть ли JavaScript/jQuery DOM change listener?] (// stackoverflow.com/a/39508954) – wOxxOm

+0

Адам, ваш код ничего не делает, поэтому код ошибки с консоли ... – Noah

ответ

1

код работает правильно, но "щелчок" событие, инициированное программно не откроет список select варианта.

См Is it possible to use JS to open an HTML select to show its option list?

Вы можете проверить, что это работает, добавив свой собственный onclick событие для этого элемента, а затем вызвав click событие.

+0

О, спасибо. Но я думаю, что он также не работал для других кнопок. Позвольте мне попробовать завтра ... – Noah

-3

Update

setTimeout(function() { 
    $('select.product-type.js-size-type').trigger('click'); 
}, 1000); 

с

setTimeout(function() { 
    $('select .product-type.js-size-type').trigger('click'); 
}, 1000); 
+0

не работает, и я не знаю, зачем это нужно. Мой код работает и на других веб-страницах ... – Noah

+0

Ahh, я пропустил ранее, вам нужно разместить пробел между типом и JS –

+0

setTimeout (function() { $ ('. Select.product-type .js-size -тип '). trigger (' click '); }, 1000); –

Смежные вопросы