c# - 如何在 jQuery 函数中使用 Windows Phone 8 C# 列表

标签 c# javascript jquery windows-phone-8

我想在 Windows Phone 浏览器控件中构建 Accordion 菜单。为此,我正在解析一个休息服务并将其放入列表中。现在我想在我的 html 页面 jQuery 函数中访问该列表。为此,我使用下面的代码,但我无法读取 jQuery 函数中的列表值。

代码:

private void browser_ScriptNotify(object sender, NotifyEventArgs e)
{      
    List<string> str = new List<string>();
    str.Add("Welcome");
    str.Add("Bye");
    browser.InvokeScript("getMemoryUsageCallback", str.ToArray());
}

HTML 页面

 <!DOCTYPE html>
      <html lang="en">
    <head>
      <meta charset="utf-8" />
      <title>jQuery UI Accordion - Default functionality</title>
      <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
      <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
      <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
      <link rel="stylesheet" href="/resources/demos/style.css" />

        <script>
            $(function () {
                $("#accordian h1").click()
                {

                }


            });

        </script>
    </head>
    <body>

    <div id="accordion">
      <h3 id="memoryUsageLimit">Section 1</h3>
      <div>
        <p>
        Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
        ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
        amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
        odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
        </p>
      </div>
      <h3>Section 2</h3>
      <div>
        <p>
        Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
        purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
        velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
        suscipit faucibus urna.
        </p>
      </div>
      <h3>Section 3</h3>
      <div>
        <p>
        Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
        Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
        ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
        lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
        </p>
        <ul>
          <li>List item one</li>
          <li>List item two</li>
          <li>List item three</li>
        </ul>
      </div>
      <h3>Section 4</h3>
      <div>
        <p>
        Cras dictum. Pellentesque habitant morbi tristique senectus et netus
        et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
        faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
        mauris vel est.
        </p>
        <p>
        Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
        Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
        inceptos himenaeos.
        </p>
      </div>
    </div>

         <script type="text/javascript">
             function onLoad() {
                 window.external.notify("getMemoryUsage");
             }

             $(function getMemoryUsageCallback(str1) {


                 $(accordion).append("<h3>"+str1.valueOf[0] +"</h3>");
                 $(accordion).accordion();
             });
        </script>


    </body>
    </html>

但我得到的 str[0] 值未定义。请帮我解决这个问题。

还发布了一些示例项目链接,我可以在其中在 Web 浏览器控件中的 Windows Phone 移动应用程序中使用 C#、JavaScript 和 J-query。以及在 Javascript 和 jquery 中访问 C# 变量的任何示例,反之亦然。

最佳答案

首先,您没有调用onLoad()。它不会被神奇地调用。将您的正文标记更新为

<body onload="onLoad();">

同时更改您的 getMemoryUsageCallback 函数,如下所示

function getMemoryUsageCallback() {
    $(accordion).append("<h3>" + arguments[0] + "</h3>");
    $(accordion).accordion();
}

您可以访问arguments内置变量来访问传递的参数。还包括 $(function ... }); 将导致错误,因此只需使用正常的 js 函数声明,如上面所示。

完整的 html 如下:

<!DOCTYPE html>
  <html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Accordion - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />

    <script>
        $(function () {
            $("#accordian h1").click()
            {

            }


        });

    </script>
</head>
<body onload="onLoad();">

<div id="accordion">
  <h3 id="memoryUsageLimit">Section 1</h3>
  <div>
    <p>
    Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
    ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
    amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
    odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
    </p>
  </div>
  <h3>Section 2</h3>
  <div>
    <p>
    Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
    purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
    velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
    suscipit faucibus urna.
    </p>
  </div>
  <h3>Section 3</h3>
  <div>
    <p>
    Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
    Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
    ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
    lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
    </p>
    <ul>
      <li>List item one</li>
      <li>List item two</li>
      <li>List item three</li>
    </ul>
  </div>
  <h3>Section 4</h3>
  <div>
    <p>
    Cras dictum. Pellentesque habitant morbi tristique senectus et netus
    et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
    faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
    mauris vel est.
    </p>
    <p>
    Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
    Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
    inceptos himenaeos.
    </p>
  </div>
</div>

     <script type="text/javascript">
         function onLoad() {
             window.external.notify("getMemoryUsage");
         }

         function getMemoryUsageCallback() {
             $(accordion).append("<h3>" + arguments[0] + "</h3>");
             $(accordion).accordion();
         }
    </script>


</body>
</html>

关于c# - 如何在 jQuery 函数中使用 Windows Phone 8 C# 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16784678/

相关文章:

javascript - Selenium 网络驱动程序 : Element is not currently visible

c# - C#SocketAsyncEventArgs停止触发完成的事件

javascript - 通过 Node.js 将 Visual Studio 调试器附加到 Electron-Edge 应用程序

c# - 为什么在我的代码中将 json 值转换为字符串

javascript - 如何防止样式传播到下一个 LI 元素?

javascript - 如何将函数用作事件处理程序并使用参数直接调用?

jquery - 使用 jquery 的 css calc 函数

c# - Windows 索引搜索 - OleDbException 未指定错误

javascript - Angular js $Interval 奇怪的行为 - Firefox Chrome

jquery - 我想创建一个带虚线的有序列表,指示文件的大小。怎么办?