Here is my code for my extension. I would like to be able to type or edit the word page content from JS using either KeyboardEvent or execCommand, I feel, I'm very close as I can fire double-click already but the KeyboardEvent does not work. Any ideas?
manifest.json
{
"manifest_version": 3,
"name": "Word Online",
"version": "1.0.0",
"content_scripts": [
{
"type": "module",
"run_at": "document_end",
"all_frames": true,
"match_origin_as_fallback": true,
"matches": [
"*://*.word-edit.officeapps.live.com/*"
],
"js": [
"word-edit.js"
]
}
]
}
word-edit.js
setTimeout(() => {
const Body = document.body
const Page = document.querySelector('.PageContent')
const Panel = document.querySelector('#WACViewPanel')
const OutlineElement = Page.querySelectorAll('.OutlineElement')
const Paragraph = Page.querySelectorAll('.Paragraph')
const Selected = Page.querySelectorAll('.Selected')
const Elements = document.querySelectorAll('body *')
const PanelElements = document.querySelectorAll('#WACViewPanel *')
const WACViewPanel_EditingElement = document.querySelector('#WACViewPanel_EditingElement')
const options = {
bubbles: true,
cancelable: true,
view: window
}
window.addEventListener('keypress', function (event) {
if (event.key === 'A') {
console.log('A Pressed')
}
})
const dblclick = new MouseEvent('dblclick', options)
const change = new CustomEvent('change', options)
const keyPressEvent = new KeyboardEvent('keypress', {
key: 'A',
bubbles: true
})
Panel.dispatchEvent(dblclick)
Body.dispatchEvent(keyPressEvent)
// PanelElements.forEach(e => {
// e.dispatchEvent(keyPressEvent)
// console.log(e)
// })
// OutlineElement.forEach(e => {
// console.log(e)
// })
}, 2000)