![](/img/trans.png)
[英]Wait to click a button after appearing on the page with Tampermonkey
[英]After append how to wait for button click resolve
我在服务中将html内容附加到正文中。 (急需)
这是我的服务:
import { Injectable, OnInit } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class AppConfig {
option:string;
popup = `<div class="main-section">
<div class="singin-options">
<div class="form-check form-check-inline">
<input class="form-check-input" (change)="onLoginChange($event)" value="CTS" type="radio" name="loginOption" id="inlineRadio1">
<label class="form-check-label" for="inlineRadio1">Login as ABC Member</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" (change)="onLoginChange($event)" value="IBO" type="radio" name="loginOption" id="inlineRadio2">
<label class="form-check-label" for="inlineRadio2">Login as XYZ Member</label>
</div>
</div>
<div class="signin">
<button type="button" class="btn btn-success">Sign In</button>
</div>
</div>`
constructor(private store:Store<StateShared>){}
initializeData() {
return new Promise((resolve, reject) => {
$('body').append(this.popup);//appended
return setTimeout(() => {
resolve(true) //get value from user, wait until
}, 5000)
});
}
onLoginChange(){ console.log('loo')}
}
我通过在promise中添加我的所有事件来解决这个问题:
return new Promise((resolve, reject) => {
if(!localStorage.getItem("name")){
$('body').append(this.popup);
$("input[name=loginOption]:radio").change(function (event) {
that.userOption = $(event.target).val();
$("button").prop('disabled', false);
})
$("button").prop('disabled', true);
$("button").click(function () {
that.value = false;
localStorage.setItem("name", that.userOption);
resolve(true);
})
}
if(localStorage.getItem("name")){
resolve(true);
}
});
这对我来说可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.