Я могу моделировать текстовый выбор с мышью в JavaScript?

Ну, можно получить что-то весьма схожее с тем использованием скрученного кабельного колодца, который работает как это:

from twisted.internet import reactor
from twisted.cred import portal, checkers 
from twisted.conch import manhole, manhole_ssh 

def getManholeFactory(namespace):
    realm = manhole_ssh.TerminalRealm()
    def getManhole(_): 
        return manhole.Manhole(namespace) 
    realm.chainedProtocolFactory.protocolFactory = getManhole
    p = portal.Portal(realm)
    p.registerChecker(
        checkers.InMemoryUsernamePassword DatabaseDontUse(admin='foobar'))
    f = manhole_ssh.ConchFactory(p)
    return f

reactor.listenTCP(2222, getManholeFactory(globals()))
reactor.run() 

Затем Вы просто входите в программу по ssh;

$ ssh admin@localhost -p 2222
admin@localhost's password: 

Используя foobar как пароль.

, Когда Вы входите в систему, Вы получите нормальную подсказку Python, где можно просто ввести по абсолютному адресу в данных. Это - не совсем то же как получение traceback, отправленного законченным в хост.

Теперь, это могло бы быть хитро для интеграции к программе GUI, в этом случае Вы, возможно, должны были бы выбрать другой реактор, например, для базирующихся программ gtk использовал gtk2reactor и т.д.

, Если Вы хотите фактический traceback, отправленный по Вам, должен создать канал сокета и для stderr, stdin и для stdout, который пробегается через сеть вместо того, чтобы печатать к Вашему локальному хосту. Не должно быть слишком твердым для выполнения при помощи скрученного.

9
задан alexwlchan 8 July 2016 в 21:03
поделиться

2 ответа

Я не думаю, что можно управлять мышью таким образом с помощью JavaScript.

Однако вы можете выбирать части документа напрямую, используя JavaScript. Например:

var h3s = document.getElementsByTagName("h3");
var range = document.createRange();
range.selectNode(h3s[0]);
window.getSelection().addRange(range);

выберет первый элемент h3.

Также см .: http://www.quirksmode.org/dom/range_intro.html для получения дополнительной информации о диапазонах застройки.

Чтобы выделить весь текст документа, вы можете использовать:

var body = document.getElementsByTagName("body")[0];
var range = document.createRange();
range.selectNode(body);
window.getSelection().addRange(range);

Чтобы выбрать 3-й символ, скажем, 4-го абзаца в документе, попробуйте:

var p4 = document.getElementsByTagName("p")[3].firstChild;
var range = document.createRange();
range.setStart(p4, 2);
range.setEnd(p4, 3);
window.getSelection().addRange(range);
13
ответ дан 3 November 2019 в 01:02
поделиться

насколько я знаю, это невозможно. единственный текст, который вы можете выбрать, находится в элементе формы (текстовое поле, вводимый текст и т. д.)

-3
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: