【问题标题】:JavaScript is not working on Windows Mobile and Windows PhoneJavaScript 不适用于 Windows Mobile 和 Windows Phone
【发布时间】:2012-09-24 00:58:10
【问题描述】:

我使用 jQuery mobile 编写了一个混合应用程序。它可以在 Android 和 iPhone 上运行,但在 Windows Phone 上会出现 UI,但 JavaScript 函数无法运行。

这是我的代码:

<html >
    <head>
           <script type="text/javascript">
            function  checkUser(){

                //here is my logic to to next screen
                         }
       </script>
   </head>
   <body>
     <div data-role="page" data-theme="b" id="page1">
          <p>
     <a data-role="button" data-transition="none" data-theme="e" onclick="checkUser(); "  rel="external"> Login </a>
          </p>
     </div>
   </body>
</html>

当我点击登录按钮时,checkUser 函数没有被调用。我做错了什么?

【问题讨论】:

  • 我假设您使用的是 WebBrowser 控件。如果是这样,您可以使用 InvokeScript 方法来执行 JavaScript。参考:blogs.msdn.com/b/mikeormond/archive/2010/08/26/…Windows Phone 7 中的 JavaScript 函数
  • 如果您使用 WebBrowser 组件并将您的 html 传递给该组件,请确保启用该脚本。 &lt;WebBrowser IsScriptEnabled = true /&gt;
  • 我已经完成了这个。但它不起作用。

标签: javascript windows-phone-7 jquery-mobile windows-mobile


【解决方案1】:

你应该有一个href。例如:&lt;a href="#" onclick="someFunction()"&gt;

【讨论】:

  • 纠正@adam这可能是问题的原因。
  • 或更好:返回 someFunction() 其中 someFunction 返回 false
  • 我更新如下。但仍然没有调用 登录
【解决方案2】:

你有一个很好的机会来使用不显眼的 JS——因为你使用了 jQuery,所以更是如此:

<html >
  <head>
    <script... jquery...></script>
       <script type="text/javascript">
          $(function() {
            $("#page1 a").on("click",function() {
              //here is my logic to to next screen
              return false; // or e.preventDefault()
            });
          });
   </script>
 </head>
 <body>
 <div data-role="page" data-theme="b" id="page1">
      <p>
 <a href="#" data-role="button" data-transition="none" data-theme="e" rel="external"> Login </a>
      </p>
 </div>
 </body>
 </html>

【讨论】:

  • 我正在尝试使用如下。 但仍然没有调用函数。跨度>
【解决方案3】:

很遗憾,Windows Mobile 6 和可能的 Windows phone 浏览器不支持完整的 javascript 标准。例如,在 Windows Mobile 6.1.4(AKU 版本级别)之前,没有 onKey...javascript 支持。要查看是否存在 WinodwsMobile Internet Explorer Mobile (IEM) 不支持的内容,请启用 ShowScriptErrors:

// If you want Pocket IE to display script errors set this registry key:
// [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "ShowScriptErrors"=dword:00000001
// MSDN Knowledge Base Q306520
// Recommended !!

另见http://forum.gpsgate.com/pop_printer_friendly.asp?TOPIC_ID=1499

我不知道,JQuery 在 WM 上支持到什么程度,但下面是一个工作代码 sn-p 来调用一个按钮单击的 javascript 函数:

<input type="button" style="width:90" name="pushbutton_0" value=" F2-Zrks" onfocus="javascript:doOnFocus(0);" onclick="javascript:doSubmit(0);">

~约瑟夫

【讨论】:

    【解决方案4】:

    我使用 VS Express 2012 for Windows Phone 的 html 模板创建了一个新项目。

    按照“nkchandra”的建议,我需要在 MainPage.xaml 文件中启用 Javascript(参见 IsScriptEnabled):

    <Grid x:Name="LayoutRoot" Background="Transparent">
        <phone:WebBrowser x:Name="Browser"
                          HorizontalAlignment="Stretch"
                          VerticalAlignment="Stretch"
                          Loaded="Browser_Loaded"
                          IsScriptEnabled = "True"
                          NavigationFailed="Browser_NavigationFailed" />
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多