0

我有几个小的 javascript 函数:

// Show cookie notice
$('#site-cookie-notice').slideDown();

// Hide cookie notice
$('.close-cookie-notice').click(function (e) {

    if (e.preventDefault) {
        e.preventDefault();
    }
    else {
        e.returnValue = false;
    }

    $('#site-cookie-notice').slideUp();
});

这些功能仅与单个用户控件相关,该控件在用户访问中最多出现一次(对于回头客根本不存在)。其余时间不呈现控件。

上面的代码当前驻留在我的 global.js 中,在 document.ready 函数中,因此会加载每个页面,但是这似乎是错误的资源使用。

我很想知道是否有更好的方法可以在这样的临时基础上注册此代码。

4

2 回答 2

1

您可以使用ScriptManager类在加载用户控件时注册脚本。这也可用于确保不会多次加载脚本。

您可以使用其中一个RegisterClientScriptBlock,也可以RegisterClientScriptInclude根据您是想内联提供脚本还是将其放在单独的文件中来使用。

于 2013-10-11T08:06:46.667 回答
0

使用用户控件中的 ScriptManagerProxy 来引用此脚本。这会将它包含在您的页面上,而不必在所有页面上都有它。

这需要您的母版页或内容页上的 ScriptManager 或 ToolkitScriptManager(如果使用 AjaxControlToolkit)。每个呈现的整个页面只能有一个脚本管理器。

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

于 2013-10-11T08:07:25.717 回答