![](/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.