Я хочу отправить URL-адрес с расширения Chrome на сервер Python. В настоящее время я работаю с модулями websockets и asyncio на python и WebSocket для Javascript, но всякий раз, когда мой сервер python получает что-либо, он просто говорит «undefined». В любом случае, я не хочу использовать веб-платформу, многие ответы на подобные вопросы, которые я видел, используют веб-платформы, которых я бы хотел по возможности избегать. Вот мой текущий код Python:
import asyncio
import websockets
async def hello(websocket, path):
name = await websocket.recv()
print(f"< {name}")
start_server = websockets.serve(hello, 'localhost', 12345)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
А вот мой код Javascript:
var websocket;
var url;
var data;
websocket = new WebSocket("ws://127.0.0.1:12345");
websocket.addEventListener("DOMContentLoaded", sendUrl());
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function sendUrl() {
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
url = tabs[0].url;
data = encode_utf8(url)
console.info(url);
});
websocket.onopen = () => websocket.send(data);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ваш первый
sendUrl()вызывает функцию. Удалите(), чтобы он стал правильным справочником. Кроме того, если это внутри сценария содержимого, вы не можете использовать там chrome.tabs - просто используйтеlocation.href.