繁体   English   中英

如何触发附加到页面的内联Javascript? (ASP.NET Web表单)

[英]How do I trigger inline Javascript that's appended to my page? (ASP.NET webforms)

我有一个由服务器生成的页面部分,其中包括由服务器编写的内联javascript(这是ASP.NET Webforms)。 这个javascript用于将onchange事件绑定到我的下拉列表中,该下拉列表位于$(document).ready()中。
当页面加载时打开我的页面部分时,将触发$ {document).ready(),并且下拉列表已正确绑定。 但是,如果在页面加载时未打开该部分(即我必须单击“扩展”按钮,该按钮与服务器联系以构建并加载页面部分),则不会触发内联脚本。
基本上,区别在于,在一种情况下, <script>标记位于已加载的初始html中,而在另一种情况下, <script>标记在页面加载后附加至初始html。

这是内联脚本:

<script type="text/javascript">
    alert('hi inline!');
    $j(document).ready( function(){ 
        var $emailNameHidden = $j('#hidden_TargetedEmailName');
        $emailNameHidden.on('change', function(){
            van.TargetedEmails.loadTestCaseNameSelect($emailNameHidden.val());
        });
     });
</script>

我添加了警报以查看是否可以通过将其放置在$(document).ready()之外来触发,但是该警报也仅在脚本包含在初始页面加载中时才触发。

将内联脚本添加到页面后,如何触发它?

旁注:我尝试将这些内容放入页面部分中包含的外部JS文件中,但是当我尝试将下拉列表绑定到外部文件中时,该绑定在下拉列表加载完成之前触发,因此未绑定当我将绑定放入$(document).ready()时,没有触发$(document).ready()。

只需将客户端逻辑移动到pageLoad事件即可。

每当页面加载到浏览器中时,即每次回发(ajax或非ajax)之后以及初始加载时,ASP.Net框架都会自动触发此JavaScript事件。 当您在ASP.Net中进行Ajax发布时,不会触发来自jquery的文档就绪事件,但是即使进行了Ajax发布,也将触发pageLoad事件。

function pageLoad() {
//put the document.ready logic here

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM