Вопрос или проблема
По сути, мне нужно выполнить команду ssh, чтобы открыть URL в текущей вкладке. Если я попытаюсь запустить Chrome с помощью
google-chrome http://yahoo.com
он добавит новую вкладку в уже существующее окно.
Я просмотрел параметры командной строки, но не нашел ничего полезного…
Кто-нибудь знает, как это сделать?
Вот все параметры командной строки для google-chrome
. Искал с помощью всех возможных ключевых слов. Но, похоже, нет ни одного для обновления активной вкладки.
Насколько мне известно, нет никакого стандартного способа или параметра командной строки для этого, но в качестве обходного пути, если вы можете установить пользовательское расширение на целевую машину, вы могли бы создать расширение Chrome, которое читает переданные аргументы (в виде URL), разбирает этот URL и затем выполняет вашу пользовательскую команду.
Эти пользовательские команды могут быть любыми, которые можно реализовать с помощью расширения Chrome: в данном случае обновление содержимого текущей вкладки.
Ответ или решение
Вопрос о том, как открыть URL в текущей вкладке Google Chrome через SSH, действительно представляет собой интересную задачу, поскольку стандартными командами это невозможно сделать. Давайте рассмотрим ситуацию подробнее и предложим несколько решений.
Проблема
При выполнении команды
google-chrome http://yahoo.com
в текущий момент времени браузер Google Chrome открывает новую вкладку, а не переходит на указанную страницу в уже открытой вкладке. Это присутствует, даже если браузер уже запущен.
Решение
На данный момент нет стандартного способа решений, использующего только командные переключатели Chrome, которые бы охватывали данную функциональность. Несмотря на это, можно рассмотреть несколько обходных путей и альтернативных решений:
1. Использование Специального Расширения для Chrome
Если у вас есть возможность установить расширение в браузере, вы можете создать пользовательское расширение Chrome, которое будет обрабатывать команды или URL, переданные с SSH.
-
Создайте расширение, которое принимает URL как входные данные. Для этого можно использовать API Chrome.
-
Слушайте события, чтобы захватывать команды, выполняемые на определенном порту или URL.
-
Перейдите на нужный URL внутри уже открытой вкладки, используя
chrome.tabs.update()
.
Такой метод требует некоторого программирования, но он обеспечивает желаемый результат.
2. Использование WebSocket или HTTP-сервера
Если создание расширения не вариант, вы можете создать лёгкий HTTP-сервер или использовать WebSocket:
-
Запустите сервер на вашей машине, который будет ожидать входящих запросов.
-
Отправьте команду через SSH для изменения текущей вкладки. Сервер будет слушать команды и обновлять текущую вкладку.
-
Примерный код на Node.js:
const http = require('http');
const { exec } = require('child_process');
const server = http.createServer((req, res) => {
const url = req.url.slice(1); // Удаляем начальный символ "/"
exec(`google-chrome "http://${url}"`, (error, stdout, stderr) => {
if (error) {
console.error(`Ошибка: ${error.message}`);
return;
}
if (stderr) {
console.error(`Ошибка: ${stderr}`);
return;
}
console.log(`Результат: ${stdout}`);
});
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Команда выполнена\n');
});
server.listen(3000, () => {
console.log('Сервер запущен на http://localhost:3000/');
});
3. Использование сторонних инструментов
Можно рассмотреть подобные инструменты, которые предназначены для управления браузером удалённо, например, Selenium WebDriver, но для этого потребуется больше настроек и возможно, установка дополнительных библиотек.
Заключение
Хотя не существует стандартного командного переключателя для обновления текущей вкладки в Google Chrome через SSH, вы можете использовать пользовательское расширение, WebSocket или HTTP-сервер как возможные решения для достижения этой цели. Это позволит эффективно управлять активными вкладками браузера и предоставит возможность удалённого открытия URL.