Tampermonkey单击此按钮

时间:2015-06-07 19:53:38

标签: javascript

我花了最后一天尝试自动点击此按钮无济于事。按钮的来源是这个。

<button type="button" class="btn btn-success ng-binding" ng-click="save()" ng-disabled="saveButton.disabled">Save</button>

按钮只在点击几次按钮后弹出,所以我一直在循环我的脚本以防万一。

我的第一个解决方案(通过重新加载返回一大堆错误):

$(function(){
    document.getElementsByClassName("save()")[0].click();
});

我的第二个(什么都不做):

$(function(){
    document.getElementsByClassName("btn btn-success ng-binding")[0].click();
});

我会继续尝试不同的东西,同时希望等待答案,如果我发现有效的话会更新。

1 个答案:

答案 0 :(得分:0)

您的第一个解决方案不起作用,因为@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); mTitle = getTitle(); // Set up the drawer. mNavigationDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); } @Override public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments Fragment fragment = null; switch (position) { case 0: fragment = new DashboardMain(); break; case 1: fragment = new IncomeMain(); break; case 2: fragment = new LossMain(); break; case 3: fragment = new CategoriesMain(); break; case 4: fragment = new VendorsMain(); break; case 5: fragment = new Logout(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.container, fragment).addToBackStack("fragback").commit(); } } 不是您按钮的类名,因此getElementsByClassName()将返回一个空数组,其第一个元素当然是未定义的,因此它没有一个save()函数。

你的第二个解决方案完美无缺。我在按钮上添加了一个点击监听器,然后是你的解决方案。如您所见,事件被触发并显示事件侦听器中的警报。

click()
document.getElementsByClassName("btn btn-success ng-binding")[0].onclick = function() {
  alert('Button clicked!');
};
document.getElementsByClassName("btn btn-success ng-binding")[0].click();