Выделите текст URL / омнибокса при загрузке новой вкладки (Chrome)

0

Как программно выбрать текст URL-адреса после загрузки новой вкладки?

Это код для redirect.js

/*global chrome,document,window */
(function init() {
    "use strict";
    chrome.storage.local.get(["url","tab.selected"], function (items) {
        var url = items.url;
        if(url) {
            var selected = items["tab.selected"] === undefined ? true : (items["tab.selected"] == "true");
            chrome.tabs.update({
                "url": url,
                "selected": selected
            });
        } else {
            angular.resumeBootstrap();
        }
    });
}());

В скором времени, когда загружается страница в "url", я хочу, чтобы она автоматически выделяла текст URL/omnibox, чтобы пользователь мог начать вводить текст, не нажимая Ctrl + A.

спасибо

EDIT: основное внимание уделяется омнибокс, но уже представленный текст не выделяется. Я хочу, чтобы он был выделен.

Теги:
google-chrome
google-chrome-extension
omnibox

2 ответа

0
Лучший ответ

Я смог решить это с помощью Обходного пути.

Используя Autohotkey, я закодировал простой скрипт, который:

  1. мониторы для новых окон.
  2. Когда новое окно обнаружено, оно проверяет имя окна, чтобы увидеть, является ли оно "хром://..." (я добавляю "...", потому что пользователи могут выбирать, что отображать на новой вкладке У меня есть chrome://apps/как моя новая вкладка.
  3. При открытии нового окна было хром://..., он посылает Ctrl + A нажатие клавиши, которое выбирает весь текст в омнибоксе.

Просто. Элегантный: P

Вот код, измените его по своему усмотрению (вам понадобится Autohotkey_L для выполнения кода. В качестве альтернативы вы можете превратить его в.exe для совместимости. См. Документацию по ссылке выше.

#Persistent
#SingleInstance, Force
#NoTrayIcon
SetBatchLines, -1
SetTitleMatchMode, 2
SetWinDelay, -1

/** Enter the name of the Chrome new tab page here, for me it is "Apps - Google Chrome" */

ChromeTab := "Apps - Google Chrome"

Gui +LastFound
hWnd := WinExist()

DllCall( "RegisterShellHookWindow", UInt,hWnd )
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage( MsgNum, "ShellMessage" )
Return

ShellMessage( wParam,lParam ) {
    Global Last
    if (wParam = 16 && Last = 6) {
        WinGetActiveTitle, T
        if (T = ChromeTab) {
            SendInput, {Control Down}l{Control Up}
        }
    }
    Last := wParam
}
-1

Возможно, вам будет добавлено нажатие клавиши, например F6, чтобы выделить его для вас.

Для нажатия введите это, не уверен, требуется ли VK_, но изменилось ENTER на F6.

Robot r = new Robot(); r.keyPress(KeyEvent.VK_ENTER); r.keyRelease(KeyEvent.VK_ENTER);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню