Как вставить текст в браузер? - PullRequest
0 голосов
/ 26 января 2011

После этого урока Мне удалось получить данные из буфера обмена.

Но я понятия не имею (как-то в API), как вставить мою строку в браузер xul (скажем, когда пользователь откроет меню «Правка» и нажмет «Вставить»).

Есть идеи?

- обновить

Здесь cmd_paste есть , но нет никаких намеков, если я смогу (и как) использовать его для вставки в браузер.Кроме того, в доступной документации по API браузера ничего нет.

Я попытался заставить его работать, создав браузер, установив атрибут command (не уверен, если он существует, API ничего не говорит, но это вики не очень надежно) и кнопка для вставки:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window width="400" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <browser id="mybrowser" command="cmd_paste" type="content" src="http://www.google.com/" flex="1" />
    <button label="TEST PASTE" command="document.getElementById('mybrowser').doCommand();" />

</window>

Ничего не происходит, когда я нажимаю кнопку (с данными в буфере обмена и текстовым полем, выбранным в браузере).

- в источнике xulrunner

в toolkit.jar, в файле content / global / editMenuOverlay.xul есть определение:

<command id="cmd_paste" oncommand="goDoCommand('cmd_paste')"/>

, но метод goDoCommand там не определен, ни в одном включенном файле JavaScript: editMenuOverlay.js.

Ответы [ 2 ]

0 голосов
/ 27 января 2011

После нахождения команды goDoCommand (см. Обновление вопроса) я обнаружил, что функция находится в файле globalOverlay.js.

Поэтому я добавил в свой Xul:

<script type="application/x-javascript" src="chrome://global/content/globalOverlay.js" />

ииспользовал команду goDoCommand.

Пока не уверен, является ли это наилучшим или даже правильным подходом для добавления этого js в мой Xul, но выглядит как хорошо.

0 голосов
/ 27 января 2011

Вам действительно нужна команда "вставить"?Не могли бы вы просто извлечь данные из буфера обмена, используя найденное вами учебное пособие, и скопировать их в текущие текстовые элементы, находящиеся в фокусе, когда нажата предыдущая кнопка?

...