无法通过 c# 代码调用 jConfirm 脚本

Posted

技术标签:

【中文标题】无法通过 c# 代码调用 jConfirm 脚本【英文标题】:can't call jConfirm script via c# code 【发布时间】:2014-04-22 12:35:47 【问题描述】:

我必须通过 c# 以编程方式调用 jConfirm 函数(jquery 警报库)。 我将 .js 库包含在我网站的母版页中,如下所示:

<script type="text/javascript" 
  src='<%# Page.ResolveClientUrl("~/Scripts/jquery-1.7.2.min.js") %>'></script>

<script type="text/javascript" 
            src='<%# Page.ResolveClientUrl("~/Scripts/jquery.alerts.js") %>'></script>

...并通过c#这样调用方法:

Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "alert", @"
   <script type=""text/javascript"" language=""javascript""> 
      jConfirm('Are you sure?', 'title', function(answer) 
                if (answer)
                    alert('ok');
                else
                    alert('ko');

      ); return false;
    </script>");

但它不起作用...如果我以相同的方式调用例如 jAlert 函数一切正常,所以我不认为是导入问题。

有什么建议吗?

【问题讨论】:

【参考方案1】:

将其包装在一个函数中

Page.ClientScript.RegisterStartupScript(typeof(System.Web.UI.Page), "alert", @"
   <script type=""text/javascript"" language=""javascript""> 
    function FooAlert()
      jConfirm('Are you sure?', 'title', function(answer) 
                if (answer)
                    alert('ok');
                else
                    alert('ko');

      ); return false;
    
    </script>");

【讨论】:

感谢您的回复。它仍然不起作用。我注意到它只适用于 Chrome,问题出在 IE 和 Firefox,但我还没有解决它。【参考方案2】:

我找到了解决办法……真是天真的理由!

<script type="text/javascript" 
  src='<%# Page.ResolveClientUrl("/Scripts/jquery-1.7.2.min.js") %>'></script>

<script type="text/javascript" 
    src='<%# Page.ResolveClientUrl("/Scripts/jquery.alerts.js") %>'></script>

似乎在相对路径中使用字符“~”时,此脚本无法正常工作……没有它就可以了。

【讨论】:

以上是关于无法通过 c# 代码调用 jConfirm 脚本的主要内容,如果未能解决你的问题,请参考以下文章

无法从 C# 调用 Powershell 函数

如何从 C# 中的 Python 脚本调用特定方法?

如何获取 jQuery Confirm (jConfirm) 值并使用该值检查条件

C# Winform 执行JS脚本

关于jquery 的jconfirm 问题

从 C# 应用程序的脚本中调用 PowerShell 函数