我看到了类似的问题和答案,但没有一个能解决这个问题。
我在 update panel 中有一个用户控件,在我的用户控件中输出 JavaScript。
当触发时,JavaScript 不会被触发。如果我将 JavaScript 移动到父页面之外的 usercontrol/updatepanel 中,它就会被触发。这样做没有意义,因为我不能在另一个页面上使用此用户控件而不重复代码...要么复制整个 JavaScript(不同的站点),要么在每个使用它的页面中添加对 .js 文件的引用(同一站点)。这样做较不具有可移植性。
我只想在控件内部(update panel 内)输出 JavaScript。
提到 updatepanel 是为了准确地说明我正在做什么。即使我将用户控件放在 updatepanels 之外,它也无法工作。
简单来说(这对我不起作用):
用户控件:
在Chrome的调试中告诉我:“未捕获的引用错误:test未定义”
如果我直接将JavaScript添加到以下onclick中,它就可以工作:
我在 update panel 中有一个用户控件,在我的用户控件中输出 JavaScript。
当触发时,JavaScript 不会被触发。如果我将 JavaScript 移动到父页面之外的 usercontrol/updatepanel 中,它就会被触发。这样做没有意义,因为我不能在另一个页面上使用此用户控件而不重复代码...要么复制整个 JavaScript(不同的站点),要么在每个使用它的页面中添加对 .js 文件的引用(同一站点)。这样做较不具有可移植性。
我只想在控件内部(update panel 内)输出 JavaScript。
提到 updatepanel 是为了准确地说明我正在做什么。即使我将用户控件放在 updatepanels 之外,它也无法工作。
简单来说(这对我不起作用):
用户控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="_location.ascx.cs" Inherits="_location" %>
<script type="text/javascript">
function test() {
alert('Hello World!');
}
</script>
<a href="javascript:void(0);" onclick="javascript:test();">
Find For Me
</a>
父级元素:
<uc1:_location runat="server" ID="_location" />
在Chrome的调试中告诉我:“未捕获的引用错误:test未定义”
如果我直接将JavaScript添加到以下onclick中,它就可以工作:
onclick="alert('Hello World!');"
正如上面所述,将函数移动到父页面也可以起作用。
就好像浏览器忽略了用户控件的脚本输出一样。
有什么想法吗?