Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с расширением для FireFox (https://javascript.ru/forum/misc/61349-pomogite-s-rasshireniem-dlya-firefox.html)

BorisBritva 14.02.2016 20:09

Помогите с расширением для FireFox
 
Есть такой main.js:

var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("popup.html")
});


var button = buttons.ActionButton({
  id: "mozilla-link",
  label: "Visit Mozilla",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick

});

function handleClick(state) {

text_entry.show();

}



exports.main = function() {

    pageMod.PageMod({
          include: "*",
          contentScriptWhen: 'end',
          contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("my-script.js")]

    });

};


Подключаю jquery-1.12.0-min.js и my-script.js

Как мне из my-script.js запустить функцию handleClick и передать в неее параметры. В общем надо управлять этой функцией из my-script.js, либо зделать аналог handleClick в my-script.js.

Спасибо.

Dilettante_Pro 14.02.2016 21:35

BorisBritva,
В эту функцию не надо передавать параметров. Параметр в заголовке не используется, а в теле функции используется глобальная переменная

BorisBritva 15.02.2016 17:23

Цитата:

Сообщение от Dilettante_Pro (Сообщение 407786)
BorisBritva,
В эту функцию не надо передавать параметров. Параметр в заголовке не используется, а в теле функции используется глобальная переменная

подскажите пожалуйста примером.

мне нужно со страницы сайта получить значение атрибутов у элемента - a (ссылки)

и передать их в text_entry ( numbers: [1, 2] - contentScriptOptions ) по клику на ссылку юзером на странице.

var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("popup.html"),
  contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("popup.js")],
  contentScriptOptions: {
    showOptions: true,
    numbers: [1, 2]
  }
});


и работа со страницей:
exports.main = function() {

	          pageMod.PageMod({
	          include: "*",
	          contentScriptWhen: 'end',
	          contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("my-script.js")]

	    });

BorisBritva 15.02.2016 17:59

Цитата:

Сообщение от Dilettante_Pro (Сообщение 407786)
BorisBritva,
В эту функцию не надо передавать параметров. Параметр в заголовке не используется, а в теле функции используется глобальная переменная

Когда вызываю из my-script.js - text_entry.show();

выводит - _errorType = ReferenceError
- message = text_entry is not defined

maximplan 15.02.2016 18:31

BorisBritva,
ИЗВИНЯЮСЬ за наглость так как ответ не по теме((((((

помогите http://javascript.ru/forum/css-html-...mat-knopu.html

Dilettante_Pro 15.02.2016 18:43

BorisBritva,
Что-то я не пойму, где у вас находится объявление text_entry.
В main.js или где-то еще?

BorisBritva 15.02.2016 18:49

Цитата:

Сообщение от Dilettante_Pro (Сообщение 407909)
BorisBritva,
Что-то я не пойму, где у вас находится объявление text_entry.
В main.js или где-то еще?

Так вроди бы в верхнем посте написано что есть файл main.js)))

Да в main.js ))

Dilettante_Pro 15.02.2016 18:58

BorisBritva,
Если вы подключаете main.js, то text_entry определится как глобальная переменная (с тем описанием, которое в main.js)
var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("popup.html")
});

А где у вас находится это описание?
var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("popup.html"),
  contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("popup.js")],
  contentScriptOptions: {
    showOptions: true,
    numbers: [1, 2]
  }
});

Которое из них вам нужно?

BorisBritva 15.02.2016 19:02

Цитата:

А где у вас находится это описание?
var text_entry = require("sdk/panel").Panel({
  contentURL: data.url("popup.html"),
  contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("popup.js")],
  contentScriptOptions: {
    showOptions: true,
    numbers: [1, 2]
  }
});

Которое из них вам нужно?
это у меня и есть в main.js

я его уже допилил))

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

BorisBritva 15.02.2016 19:07

вот весь main.js:
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

var text_entry = require("sdk/panel").Panel({
  include: "*",
  contentURL: data.url("popup.html"),
  contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("popup.js")],
  contentScriptOptions: {
    showOptions: true,
    numbers: [1, 2]
  }
});


var button = buttons.ActionButton({
	
  id: "mozilla-link",
  label: "Visit Mozilla",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onClick: handleClick

});

function handleClick(state) {

text_entry.show();

}

exports.main = function() {
	
pageMod.PageMod({
	
include: "*",
contentScriptWhen: 'end', // end start
contentScriptFile: [data.url("jquery-1.12.0-min.js") , data.url("my-script.js")]

});

};


Часовой пояс GMT +3, время: 20:35.