RegisterClientScriptBlock将脚本放在移动浏览器的同一块中

问题描述 投票:0回答:1

我有一个aspx网页,其中有一些jquery函数放在一个单独的asp内容占位符中。当打开带有更新面板(设置为条件更新)的modalpopup时,将从代码后面调用脚本。它们使用RegisterClientScriptBlock调用。

在桌面浏览器中加载模式后,脚本运行正常,我没有收到任何错误(使用浏览器调试控制台检查);但是,在移动浏览器中打开模式会导致控制台捕获到意外的标识符错误。检查浏览器调试器上的源页面显示,在移动浏览器中,RegisterClientScriptBlock调用与来自母版页的另一个脚本调用放在同一个块中。这可以防止动画发生。

码:

<script type="text/javascript">

    function AnimateBar(width) {
        $(".progress-bar").animate({
            width: width + "%"
        }, 2500);

        $(".progressShow").text(width + "% Complete");

    };

    function fadeInItems() {
        var items = $('.jobTrackingWell').hide();
        var i = 0;
        (function displayItem() {
            items.eq(i++).delay(5).fadeIn(350, displayItem);
        })();

    };


</script>

代码背后:

ScriptManager.RegisterClientScriptBlock(Me, GetType(Page), "JobTrackingScript", "AnimateBar(" & progbaramount & ")", True)
 ScriptManager.RegisterClientScriptBlock(Me, GetType(Page), "JobTrackingScript2", "fadeInItems()", True)

我试过了:

- 将ID分配给aspx页面上的脚本块

- 确保RegisterClientScriptBlock调用中提供的密钥与主页面RegisterClientScriptBlock调用中指定的密钥不同

将RegisterClientScriptBlock调用 - 如下所示:

ScriptManager.RegisterClientScriptBlock(Me, GetType(Page), "JobTrackingScript", "AnimateBar(" & progbaramount & ");fadeInItems()", True)

- 在每个RegisterClientScriptBlock中的每个函数调用之后放置分号

- 使用RegisterStartupScript(我看到它将它放在页面的底部)

- 确保母版页和移动母版之间的脚本占位符没有区别

有点难过,因为页面只在移动浏览器上有问题。这可能是一个问题,这个脚本是在调用期间和updatepanel事件中调用的吗?

asp.net mobile updatepanel registerstartupscript registerclientscriptblock
1个回答
0
投票

RegisterClientScriptBlock和RegisterStartupScript不“调用”javascript函数,它们只向页面添加新脚本。

RegisterClientScriptBlock在开始表单标记之后添加新代码; RegisterStartupScript将代码添加到页面末尾。

您的脚本已经在页面上,因此您不必执行任何一个。

在模态加载时使用javascript调用函数。

© www.soinside.com 2019 - 2024. All rights reserved.