Страницы: 1
luitzen, тут именно атрибут. Смысл кода в том, чтобы при загрузке страницы в списке br.contentDocument.forms[0].getElementsByTagName('select')[0] выбирался элемент со значением из textbox.
Пока я устанавливаю его в ручную:
все работает нормально. Но при этом мне каждый раз приходится менять код расширения и перезапускать firefox. Хотелось бы, чтобы нужное значение бралось из textbox
Здравствуйте. У меня снова вопрос.
Как в коде Javascript обращаться к свойствам элементов интерфейса?
Если конкретно, то есть такая проблема:
Добавил на панель состояния браузера кнопку и текстовое поле.
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="chrome://submitExtension/content/browser_select.js"/> <statusbar id="status-bar"> <button label="Submit!" insertafter="statusbar-display" oncommand="SelectOptions()"/> <textbox id="GroupId" insertafter="statusbar-display" value="Enter GroupId here"/> </statusbar> </overlay>
Теперь мне нужно использовать текст из textbox в коде Javascript. Как это сделать?
Код такой:
br.contentDocument.forms[0].getElementsByTagName('select')[0].value = значение из textbox
Все, спасибо. Вопрос снят. Помогла просто переустановка.
Здравствуйте.
Мое расширение перестало работать в firefox 3.6. Версию в install.rdf поменял, не помогло. В чем еще могут быть проблемы?
Вот код расширения.
Файл install.rdf
<?xml version="1.0" encoding="UTF-8"?> <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>submitExtension@softline.ru</em:id> <em:name>submitExtension</em:name> <em:version>0.1</em:version> <em:targetApplication> <!-- Firefox --> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>3.0</em:minVersion> <em:maxVersion>3.6.*</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
Файл crome.manifest
[code]content submitExtension chrome/content/
locale submitExtension en-US chrome/locale/en-US/
overlay chrome://browser/content/browser.xul chrome://submitExtension/conte
…Снова нужна помощь.
Для того, чтобы понять как работать с вкладками немного модифицировал это расширение. Теперь по замыслу при щелчке на кнопке на всех открытых вкладках должно выполняться submit() для форм на этих вкладках. (известно, что форму там гарантированное есть.).
Получился вот такой код browser.js (основан на примере отсюда https://developer.mozilla.org/en/nsIWindowMediator):
function SubmitTabs() { var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var enumerator = wm.getEnumerator("navigator:browser"); while(enumerator.hasMoreElements()) { var win = enumerator.getNext(); // win is [Object ChromeWindow] (just like window), do something with it win.content.document.forms[0].submit(); dump("Submitted!\n"); } }
В результате submit выполняется, но только на выбранной вкладке. В чем может быть причина?. В примере написано: "Thi
…ksfinks
Там документ совсем не тот.Попробуйте заменить document на content.document, а window.open() – на gBrowser.addTab().
Ну, и лучше curr.href вместо curr.getAttribute('href').
Спасибо. Заработало.
ksfinks
ну у тебя же iterateNext()
как функция отсутствует в коде
а вдругих работает потому что она гдето ещё присутствует.. поищи в файлах
function iterateNext() {блаблабла}
и вставь эту функцию в свой код
iterateNext() - метод объекта iter, который имеет тип XPathResult. Если бы библиотека ХPath не поддерживалась, то и document.evaluate не выполнялся бы. Он же выполняется и в iter есть какое-то не null значение
Задача.
Сделать кнопку в нижней части окна firefox, с помощью которой можно будет открывать или все гиперссылки на странице или гиперссылки с определенным текстом.
Решение.
Взял в качестве примера HelloWorld отсюда http://design-challenge.mozillalabs.com/re...ension_bootcamp и переделал под свою задачу. Вот что получилось:
файл browser.xul
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script type="application/javascript" src="chrome://submitExtension/content/browser-3.js"/> <statusbar id="status-bar"> <button label="Submit!" insertafter="statusbar-display" oncommand="OpenTabs()"/> </statusbar> </overlay>
файл browser.js
[code]function OpenTabs() {
var iter = document.evaluate("//a[.='[RU]']", document, null, XPathResult.ANY_TYPE, null);
var curr = iter.iterateNext();
while(curr)
{
// _console.log(curr.getAttribute('href'));
window.open(curr.getAttribute('hre
(Можно с помощью скрипта только в том случае, если все табы через него открыты.)
Табы открываются тоже через скрипт по ALT + E c помощью window.open. Можно ли получить ссылку на массив открытых табов?
Здравствуйте. Подскажите возможен ли скрипт, умеющию делать такие вещи:
1. Перемещаться по вкладкам firefox.
2. Вызывать событие submit для форму на каждой вкладке. Форма везде одна и та же.
2-ой пункт я реализовал в кач-ве скрипта для greasemonkey:
// ==UserScript== // @name GoButtonsClick // @namespace http://diveintogreasemonkey.org/download/ // @description clicking on all "Go" Buttons // @include * // @exclude http://diveintogreasemonkey.org/* // @exclude http://www.diveintogreasemonkey.org/* // ==/UserScript== window.go = { handler: function(e) { if(!e.altKey) return true; if(e.keyCode!=71) return true; window.go.runScript(); return false; }, init: function(){ window.addEventListener('keydown',window.go.handler,false); }, runScript: function() { document.forms[0].submit(); } }; window.go.init();
В результате при нажатии Alt + G выполняется submit(). Теперь хочу сделать тоже самое, но чтобы вып
…Здравствуйте. Недавно начал знакомство с greasemonkey. Придумал вот такой код для открытия ссылки Видео на стартовой странице firefox (та которая гугл-поиск) в новой вкладке.
// ==UserScript== // @name TestScript // @namespace http://diveintogreasemonkey.org/download/ // @description example script // @include * // @exclude http://diveintogreasemonkey.org/* // @exclude http://www.diveintogreasemonkey.org/* // ==/UserScript== var iter = document.evaluate("//a[.='Видео']", document, null, XPathResult.ANY_TYPE, null); var curr = iter.iterateNext(); while(curr) { // _console.log(curr.getAttribute('href')); window.open(curr.getAttribute('href')); curr = iter.iterateNext(); }
Не работает. Тот же код но для ссылки Gmail - работает. Посмотрел код скрипта через greasemonkey, вместо видео там написано яПНяПНяПНяПНяПН. Получается greasemonkey не воспринимает русский алфавит. Можно ли как-нибудь обойти эту проблему?
…Страницы: 1