Вызов пользовательской функции jQuery из Silverlight - PullRequest
0 голосов
/ 02 марта 2012

У меня есть это:

(function ($) {
  var myObj = {
    callMe: function (msg) {
      console.log(msg);
    }
  }
})(jQuery);

и я хотел бы вызвать функцию callMe из Silverlight.

Это не похоже на работу:

ScriptObject jsObject = (ScriptObject)HtmlPage.Window.GetProperty("callMe");
jsObject.InvokeSelf('This is a message');

Как мне использовать функцию callMe, чтобы я мог вызывать ее из Silverlight?

Ответ: (поскольку у меня недостаточно представителей, я должен ответить здесь)

Томалак, Вы указали мне в правильном направлении! На самом деле он работает в обоих направлениях, если вы сделаете его свойством объекта окна:

<script type="text/javascript">

    (function ($) {

        var myObj = {

            callThis:function(msg){
                console.log("Internal call:" + msg);
            }

        };
    window.myObj = myObj;

    window.callMe = function (msg) {
        console.log("External call:" + msg);
      }

    })(jQuery);
</script>

<script type="text/javascript">
    window.callMe("well, hello there...");
    window.myObj.callThis("... and hello you!");
</script>

1 Ответ

1 голос
/ 02 марта 2012

Это невозможно для вашего кода, поскольку myObj и его содержимое local для вашей функции JavaScript.

Вместо этого сделайте его свойством объекта window.

(function ($) {
  window.callMe = function (msg) {
    console.log(msg);
  }
})(jQuery);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...