2017-04-08 110 views
0

我已经this page。我需要使用AngularJS触发此页面上的BUY NOW按钮。如何触发点击按钮

我已经试过这些方式点击内容的脚本(myscript.js)这个“立即购买”,但不工作:

angular.element($('ul form button:contains("BUY NOW")').get(0)).triggerHandler('click'); 

     $('ul form button:contains("BUY NOW")').get(0).click(); 

     $('ul form button:contains("BUY NOW")').get(0).dispatchEvent(new MouseEvent('click', { 
      'view': window, 
      'bubbles': true, 
      'cancelable': true 
     })); 

在manifest.json看起来是这样的:

"content_scripts": [ 
     { 
      "run_at": "document_end", 
      "all_frames": false, 
      "matches": ["*://www.flipkart.com/*"], 
      "css": [ "jqueryui/jquery-ui.css", "js/slidenavi/sidenavi-right.css","main.css", "js/bootstrap-switch-master/dist/css/bootstrap3/bootstrap-switch.min.css"], 
      "js": ["jquery-2.1.4.min.js", "jqueryui/jquery-ui.min.js","js/angular.min.js", "js/jquery.cookie.js", "jqueryui/jquery-ui.min.js","js/slidenavi/SideNavi.js", "client_server_common.js", "user-selections.js", 
       "jquery.countdown.min.js", "js/bootstrap-switch-master/dist/js/bootstrap-switch.min.js", "js/cryptojs/rollups/md5.js", "common.js", 
       "myscript.js" 
      ] 
     } 
    ], 

使其工作的方式是什么?

回答

1

试试这个代码;它通过快速连续的按钮,鼠标点击和点击事件在按钮中心点击模拟鼠标左键单击:

var simulateMouseEvent = function(element, eventName, coordX, coordY) { 
    element.dispatchEvent(new MouseEvent(eventName, { 
    view: window, 
    bubbles: true, 
    cancelable: true, 
    clientX: coordX, 
    clientY: coordY, 
    button: 0 
    })); 
}; 

var theButton = document.querySelector('ul form button'); 

var box = theButton.getBoundingClientRect(), 
     coordX = box.left + (box.right - box.left)/2, 
     coordY = box.top + (box.bottom - box.top)/2; 

simulateMouseEvent (theButton, "mousedown", coordX, coordY); 
simulateMouseEvent (theButton, "mouseup", coordX, coordY); 
simulateMouseEvent (theButton, "click", coordX, coordY); 
+0

辉煌。万分感谢。我准备好很快接受你的答案。 – user5858

+0

我有另一个选择元素,但这种技术是行不通的。即使在选择一个选项后,它仍然要求选择一个选项。还有什么要做的? – user5858

+0

您无法使用Javascript打开选择元素的选项列表。见[这个答案](http://stackoverflow.com/questions/42368802/trigger-click-not-working/42375182#42375182)。 –

0

怎么样香草JS,noone禁止?

如“onlick/click”?

function ae(a,b,c) { 
if (a.addEventListener) 
    a.addEventListener (b,c,false); 
else if (a.attachEvent) 
    a.attachEvent ('on'+b,c); 
} 
function re(a,b,c) { 
if (a.removeEventListener) 
    a.removeEventListener (b,c,false); 
if (a.detachEvent) 
    a.detachEvent ('on'+b,c); 
} 
+1

它是什么以及如何使用它? – user5858