Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

Разработка » обработка событий. addEventListener » 17-08-2007 09:55:42

Anton
Не очень красиво но заработало

Выделить код

Код:

image.onclick = function()
            {
                this["instance"].executeAction(this["action"]);
            }.bind(new myObject({ instance : this, action : arrayToolbar[i][1] }));

Разработка » iframe + designMode, динамическая загрузка CSS » 17-08-2007 09:52:50

Dark-Demon
Так неверное удобнее, но писать в документ напрямую я не люблю, один раз изза этого я долго мучался. Сейчас через DOM. так удобней и безопасней, только вот некоторIE браузеры не очень поддерживают их.

Разработка » iframe + designMode, динамическая загрузка CSS » 15-08-2007 14:21:56

по моему у вас опять проблема в this:

в данном случае все правильно, этот "тот самый" this

Динамичаски загружать необходимо потому что CSS файл может находится в разных каталогах.

Проблему решил: указал для iframe аттрибут src на пустоу HTML файл, и потом добавил CSS динамичаский.

PS:

p.s.: старайтесь приводить коды меньших размеров

будем приводить поменьше(в следующий раз)

Спасибо за помощь!!!

Разработка » iframe + designMode, динамическая загрузка CSS » 14-08-2007 17:16:06

Пытаюсь динамический загрузить CSS, для iframe

[code]var jsEditorBaseUrl = false;

var elements = document.getElementsByTagName("script");
for (var i = 0; i < elements.length; i++)
{
    if (elements[i].src && (elements[i].src.indexOf("jseditor.js") != -1))
    {
        var src = elements[i].src;
        jsEditorBaseUrl = src.substring(0, src.lastIndexOf('/'));
        break;
    }
}

var jsEditorPathCSS = jsEditorBaseUrl + "/css/";
var jsEditorPathImg = jsEditorBaseUrl + "/img/";

// функция для загрузки
function importCSSToDoc(doc, cssFileName) {
    var styleSheet = doc.createElement("link");
    styleSheet.setAttribute("href", jsEditorPathCSS + cssFileName);
    styleSheet.setAttribute("rel", "stylesheet");
    styleSheet.setAttribute("type", "text/css");
    var head = doc.getElementsByTagName("head");
    head[0].appendChild(styleSheet);
}

Function.prototype.bind = function(object) {
    var method = this
    return function() {
        return method.apply(object, arguments)

Разработка » обработка событий. addEventListener » 14-08-2007 16:25:24

Да действительно работает толко одна кнопка. Здесь http://xpoint.ru/know-how/JavaScript/Po … DlyaCallba приведен пример передачи одного параметра, как можно реализовать передачу двух или болле, пробовал так
[code]jsEditor.prototype = {
    executeAction : function(action)
    {
        alert("instance : " + this.name + ", action : " + action);
    },

    createToolbarFromArray : function(toolbarCell, arrayToolbar)
    {
        var instanceName = this.name;
        for (i in arrayToolbar)
        {
            var image = document.createElement("img");
            image.setAttribute("src", jsEditorPathImg + arrayToolbar[i][2]);
            image.setAttribute("class", "jseditor-button");
            image.onclick = function(action)
            {
                this.executeAction(action);
            }.bind(this, arrayToolbar[i][1]);
           
            image.onmouseover = function()
            {
                this.id = "js-button-s

Разработка » обработка событий. addEventListener » 13-08-2007 15:15:48

Рещил проблема была в

Выделить код

Код:

document.open();
        document.write(conteiner.innerHTML);
        document.close();

заменил на

Выделить код

Код:

document.body.insertBefore(conteiner, null);

Разработка » обработка событий. addEventListener » 13-08-2007 14:30:55

Глухо:(

Добавлено Пнд 13 Авг 2007 14:47:12 :
Решилось для

Выделить код

Код:

<script type="text/javascript">
function TFoo() {

}
TFoo.prototype = {

  init : function()
  {
    var div = document.body;
    div.addEventListener("click", TFoo.prototype.load, false);
  },
  
  load : function()
  {
    alert("hello");  
  }
  
};

foo = new TFoo();

foo.init();
</script>

пашет скомпоную под неё. Спасибо!!!

Разработка » обработка событий. addEventListener » 13-08-2007 14:18:46

не работает, даже так :

Выделить код

Код:

image.onclick = function() {
                document.getElementById("msg").innerHTML = "asdasdasd";
            };

Разработка » обработка событий. addEventListener » 13-08-2007 14:09:08

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

Разработка » обработка событий. addEventListener » 13-08-2007 13:34:13

Так он же вызывается

Выделить код

Код:

this.create();

Если ты о том.

Разработка » обработка событий. addEventListener » 13-08-2007 13:15:04

Выводит ошибку :

Выделить код

Код:

uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: file:///home/almaz/proj/jseditor/jseditor.js :: anonymous :: line 27" data: no]

Даже так не помогает

Выделить код

Код:

image.addEventListener("click", jsEditor.prototype.executeAction, false);

Разработка » обработка событий. addEventListener » 13-08-2007 11:02:09

Необходимо написать небольшой редактор через desigmMode.

Необходимо отслеживать нажатие кнопок(картинок), прикрепляю обработчики через addEventListener но не работает. FireBug никаких сообщений об ошибке не выдает.

Вот исходниый код:
[code]function jsEditor(name, content, height, width)
{
    this.name    = name;
    this.content = content;
    this.height  = height;
    this.width   = width;
    this.create();
}

jsEditor.prototype = {
   
    executeAction : function()
    {
        var div = document.getElementById("msg");
        div.innerHTML = "asdasdasd";
    },
   
    createToolbarFromArray : function(arrayToolbar)
    {
        var toolbar = document.createElement("div");
        for (i in arrayToolbar)
        {
            var image  = document.createElement("img");
            image.setAttribute("id", arrayToolbar[i][1] + "-button");
            image.setAttribute("src", "styles/img/jseditor/" + arrayToolbar[i][2]);

            image.addEventListener("click", this

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]