Chrome Skype Web 的扩展按键
Chrome Extension keypress for Skype Web
我想编写一个 Chrome 扩展,可以使用 Skype for web (https://web.skype.com/en/) 发送消息。我可以在 textarea 中获取文本,但无法触发 Enter 键。如何存档?
扩展程序加载正常,并在输入字段中输入了一个文本,但它停止了。我还尝试触发更改事件和输入事件。但是没有任何反应。
我正在使用等待功能,因为 Skype 需要一段时间才能加载。
我的manifest.json
{ "manifest_version": 2, "name": "SkypeTest", "version": "0.0.1",
"content_scripts": [{"matches": ["https://web.skype.com/*"],
"js": ["jquery-2.1.4.min.js", "skypeTest.js"]}]}
我的skypeTest.js
;(function() {
var e = jQuery.Event( 'keydown', { which: 13 } );
function init(){
console.log('Script running');
var wait = function() {
var txtArea = $("textarea[name='messageInput']");
if (txtArea.is(':visible')) {
clearTimeout(waiting);
txtArea.val('Hello Skype');
txtArea.trigger('focus').trigger(e);
}
};
var waiting = setInterval(wait, 5000);
}
init();
})();
这是输入框
<textarea tabindex="10010" maxlength="2000" data-bind="value: messageBody, css: {hide: !isEnabled()},
valueUpdate: ['afterkeydown','propertychange','input'],
event: { keypress: handleKeyPress, keydown: handleKeyDown, input: handleInput,
focus: onFocus, blur: onBlur, paste: onPaste }, hasFocus: chatInputFocus,
l10n_attr: {'placeholder': 'area_text_insertText'}, attr: { 'aria-label': label },
template: { afterRender: handleFocus }" name="messageInput" class="inputField fontSize-p" placeholder="Type a message here"
aria-label="Chat input" style="height: 30px;"></textarea>
由于 Chrome 的安全功能,这似乎是不可能的。
我改为 Electron。
我想编写一个 Chrome 扩展,可以使用 Skype for web (https://web.skype.com/en/) 发送消息。我可以在 textarea 中获取文本,但无法触发 Enter 键。如何存档?
扩展程序加载正常,并在输入字段中输入了一个文本,但它停止了。我还尝试触发更改事件和输入事件。但是没有任何反应。
我正在使用等待功能,因为 Skype 需要一段时间才能加载。
我的manifest.json
{ "manifest_version": 2, "name": "SkypeTest", "version": "0.0.1",
"content_scripts": [{"matches": ["https://web.skype.com/*"],
"js": ["jquery-2.1.4.min.js", "skypeTest.js"]}]}
我的skypeTest.js
;(function() {
var e = jQuery.Event( 'keydown', { which: 13 } );
function init(){
console.log('Script running');
var wait = function() {
var txtArea = $("textarea[name='messageInput']");
if (txtArea.is(':visible')) {
clearTimeout(waiting);
txtArea.val('Hello Skype');
txtArea.trigger('focus').trigger(e);
}
};
var waiting = setInterval(wait, 5000);
}
init();
})();
这是输入框
<textarea tabindex="10010" maxlength="2000" data-bind="value: messageBody, css: {hide: !isEnabled()},
valueUpdate: ['afterkeydown','propertychange','input'],
event: { keypress: handleKeyPress, keydown: handleKeyDown, input: handleInput,
focus: onFocus, blur: onBlur, paste: onPaste }, hasFocus: chatInputFocus,
l10n_attr: {'placeholder': 'area_text_insertText'}, attr: { 'aria-label': label },
template: { afterRender: handleFocus }" name="messageInput" class="inputField fontSize-p" placeholder="Type a message here"
aria-label="Chat input" style="height: 30px;"></textarea>
由于 Chrome 的安全功能,这似乎是不可能的。 我改为 Electron。