[JQUERY] 선택과 AJAX 기반의 사이트에서 바로 컨트롤을 활성화
JQUERY선택과 AJAX 기반의 사이트에서 바로 컨트롤을 활성화
해결법
-
1.바로 질문에서 스크립트를 변경하기보다는, 나는의 빠른 개요를 수 있도록 노력하겠습니다 방법 스크립트 그리스 몽키 / Tampermonkey있는 페이지와 행동의 이러한 종류.
바로 질문에서 스크립트를 변경하기보다는, 나는의 빠른 개요를 수 있도록 노력하겠습니다 방법 스크립트 그리스 몽키 / Tampermonkey있는 페이지와 행동의 이러한 종류.
단계는 다음과 같습니다
그 결과, 전체, 작업 스크립트입니다 :
// ==UserScript== // @name _Nike auto-buy shoes(!!!) script // @include http://store.nike.com/* // @include https://store.nike.com/* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== /*- The @grant directive is needed to work around a design change introduced in GM 1.0. It restores the sandbox. */ var targetShoeSize = "10"; //-- STEP 1: Activate size drop-down. waitForKeyElements ( "div.footwear form.add-to-cart-form span.sizeDropdown a.size-dropdown", activateSizeDropdown ); function activateSizeDropdown (jNode) { triggerMouseEvent (jNode[0], "mousedown"); //-- Setup step 2. waitForKeyElements ( "ul.selectBox-dropdown-menu li a:contains('" + targetShoeSize + "'):visible", selectDesiredShoeSize ); } //-- STEP 2: Select desired shoe size. function selectDesiredShoeSize (jNode) { /*-- Because the selector for this node is vulnerable to false positives, we need an additional check here. */ if ($.trim (jNode.text () ) === targetShoeSize) { //-- This node needs a triplex event triggerMouseEvent (jNode[0], "mouseover"); triggerMouseEvent (jNode[0], "mousedown"); triggerMouseEvent (jNode[0], "mouseup"); //-- Setup steps 3 and 4. waitForKeyElements ( "div.footwear form.add-to-cart-form span.sizeDropdown a.selectBox " + "span.selectBox-label:contains('(" + targetShoeSize + ")')", waitForShoeSizeDisplayAndAddToCart ); } } //-- STEPS 3 and 4: Wait for shoe size display and add to cart. function waitForShoeSizeDisplayAndAddToCart (jNode) { var addToCartButton = $( "div.footwear form.add-to-cart-form div.product-selections div.add-to-cart" ); triggerMouseEvent (addToCartButton[0], "click"); //-- Setup step 5. waitForKeyElements ( "div.mini-cart div.cart-item-data a.checkout-button:visible", clickTheCheckoutButton ); } //-- STEP 5: Click the checkout button. function clickTheCheckoutButton (jNode) { triggerMouseEvent (jNode[0], "click"); //-- All done. The checkout page should load. } function triggerMouseEvent (node, eventType) { var clickEvent = document.createEvent('MouseEvents'); clickEvent.initEvent (eventType, true, true); node.dispatchEvent (clickEvent); }
from https://stackoverflow.com/questions/15048223/choosing-and-activating-the-right-controls-on-an-ajax-driven-site by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를에 이벤트 처리기를 제거하는 가장 좋은 방법은? (0) | 2020.09.23 |
---|---|
[JQUERY] jQuery를 사용하여 하이퍼 링크의 HREF를 변경하는 방법 (0) | 2020.09.23 |
[JQUERY] 모든 JQuery와 이벤트는 $ (문서)에 결합해야 하는가? (0) | 2020.09.23 |
[JQUERY] jQuery를 사용하여 양식 제출 [폐쇄] (0) | 2020.09.23 |
[JQUERY] 온 클릭 VS jQuery.click () (0) | 2020.09.23 |