【问题标题】:calling javascript method for asp.net control not working为asp.net控件调用javascript方法不起作用
【发布时间】:2012-06-20 20:15:46
【问题描述】:

这是我的 JavaScript:

$(document).ready(function () {
    function ShowHelp() {
        window.open('../WebHelp/' + '<%= SessionManager.CurrentDictionaryId %>' + '/mweb.htm#cshelp/assetsdetail.htm', '', 'toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
    }
    function RunPrint(values) {
        window.open('../Reports/Assets/AssetProfile.aspx?id=' + values, '', 'toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
    }
});

我有两个 &lt;asp:Hyperlink&gt; 标签设置如下:

<asp:HyperLink ID="lnkHelp" runat="server" EnableViewState="False" ImageUrl="~/Images/Help.png"
        NavigateUrl="javascript:ShowHelp();" />
<asp:HyperLink ID="lnkPrint" ImageUrl="~/Images/PrintMed.png" runat="server" EnableViewState="false"
        NavigateUrl="javascript:GetSelectedToPrint();" />

在 Chrome 中运行调试器工具时,我收到以下消息:

"Uncaught ReferenceError: ShowHelp is not defined"
"(anonymous function)"

我对 javascript 相当无知,但我觉得我知道的足够多,可以阅读其中的内容,但我没有看到问题。

【问题讨论】:

  • $(document).ready解包。
  • 是的,刚刚尝试过,它奏效了。您可以向我指出为什么会发生这种情况的任何参考资料?
  • 这是因为您从使用全局函数的javascript: URI 调用方法。通过将函数嵌套在另一个函数中,它们不再是全局的,并且无法通过所述 URI 调用。

标签: c# javascript asp.net referenceerror


【解决方案1】:

您是否尝试删除 $(document).ready(function(){ ?

如果您只是想创建一个将在加载控件后触发的函数(在您的情况下),则不需要该代码。

【讨论】:

  • 那行得通,我在您发布答案时尝试过。谢谢!
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多