Вызов метода из XBL - PullRequest
       41

Вызов метода из XBL

0 голосов
/ 21 декабря 2010

Из метода XBL, когда мне нужно вызвать другой метод, мне нравится:

        <method name="myMethod_1">
            <body>
                <![CDATA[
                    // do staff
                ]]>
            </body>
        </method>


        <method name="myMethod_2">
            <body>
                <![CDATA[
                    document.getElementById("thisElementID").myMethod_1();
                ]]>
            </body>
        </method>

Я хотел бы знать, есть ли способ вызвать локальный метод без необходимости идентификатора элемента? Я пытался this.myMethod_1(), но он говорит, что метод не существует.

Ответы [ 2 ]

1 голос
/ 11 января 2011

В конкретном случае прослушивателя событий существует другой способ решения этой проблемы, а именно передача самого элемента в качестве прослушивателя.Конечно, вы получаете только один метод handleEvent, поэтому он менее полезен, если вы слушаете множество разных событий на множестве разных целей событий.

<implementation implements="nsIDOMEventListener">
  <method name="handleEvent">
    <parameter name="aEvent"/>
    <body>
      <![CDATA[
        // do stuff
      ]]>
    </body>
  </method>
0 голосов
/ 22 декабря 2010

Можете ли вы показать нам код вызова myMethod_2? Если вы называете это как: document.getElement (...). MyMethod_2 () это нормально, но если у вас есть что-то вроде someElement.addEventHandler ("click", myxbl.myMethod_2, ...); это не будет работать, так как цель события будет this .

Это важно для определения, что это в этом контексте

РЕДАКТИРОВАТЬ: (ответ Тома)

ау, думаю, я понял .. именно в этом проблема .. Я звоню от прослушивателя клавиш другого документа, и "это" было не тем, что я думаю ..

...