我正在开发chrome扩展程序,并尝试在插件内textarea中的选项卡上输出所选文本。
获取所选文本的功能效果很好,但是我无法将值设置为插件内的textarea元素。
问题:如何正确存储值,然后可以使用数据绑定将其传递到文本区域?
HTML:
<div>
<p>Here will appear the selected text :</p>
<textarea name="selectedText" id="selectedText" [(ngModel)]="selectedText"></textarea>
<button (click)="getSelectedText()">Get the selected text</button>
</div>
TS:
export class CaptureComponent {
selectedText = '';
getSelectedText() {
chrome.tabs.executeScript( {
code: 'window.getSelection().toString();'
}, function(selection) {
this.selectedText = selection[0];
});
}
}
selection[0]
正常工作,所以我想我尝试存储数据的方式不正确,但是我似乎找不到要更改的内容。 最佳答案
在您当前的方法中,this
不引用您的组件。
更改您的回调以使用箭头功能保持范围:
getSelectedText() {
chrome.tabs.executeScript( {
code: 'window.getSelection().toString();'
}, (selection) => {
this.selectedText = selection[0];
});
}