【问题标题】:With a single Javascript for Entire Website set on Master Page, how to exe a JS function only for one(or 2) chlid page在母版页上设置整个网站的单个 Javascript,如何仅为一个(或 2 个)chlid 页面执行 JS 函数
【发布时间】:2011-05-10 12:09:24
【问题描述】:

我正在开发一个只有一个 Javascript 的 .net 网站(到目前为止)。因为有人告诉我Single JS 性能最好等等。首先,有什么关于JS 框架的建议,有什么前沿的文章吗?

其次,我在尝试仅为子页面调用 JS 函数时遇到了一些问题。我试过类似的东西:

1.我想在page_load(即ispostback)之后执行一个函数

$("#div_ID").ready

2.exe 页面回发后的功能(更新面板中的下拉列表回发)

pgRegMgr.add_beginRequest(BeginHandler)

function BeginHandler()
{$(".DDL_ClassName").change(function{.....});
}

两者都不起作用。系统无法识别 div 或 DDL。 我无法在 'master' JS 中的 $(document).ready 或 .add_beginReqest() 中设置函数,这会导致其他页面出错。有什么建议?还是我必须移动到多个 JS 文件?

此外,我没有编写内联 javascript,而是使用

$(document).ready(function{textchange});

function textchange(function { $(".textbox_class").change(.....)});

它适用于 Chrome 等,但不适用于 IE 7(mb IE8 也是如此)

谁能帮帮我?

非常感谢。

【问题讨论】:

    标签: javascript .net jquery ajax javascript-framework


    【解决方案1】:

    有几种不同的方法可以做到这一点。

    就个人而言,我认为在每个页面上都有一个 $(document.ready(每个页面上都有简单的 init 函数。在这种情况下,你会做同样的事情:

    //On the single page you want the function called on
    $(document.ready(function() {
         textchange();
    });
    

    如果您不想在子页面上使用 $(document).ready(),可以在 .js 文件中使用 if 语句。使用 window.location.pathname 获取文件的路径,并将其与子页面的路径进行检查。您的代码可能如下所示:

    //In your main .js file
    $(document).ready(function() {
         if(window.location.pathname == "/childPage.htm")
              textchange();
    });
    

    【讨论】:

    • 你的方法可行。由于我的页面 url 有不同的根路径,运行在不同的服务器上。
    • 你的方法可行。由于我的页面 url 有不同的根路径,在不同的服务器上运行。我使用 div.length = 0 来检查它是否存在。可以吗?
    • 不确定 div.length 是什么意思。如果您无法弄清楚,请发布一些源代码。但是,我的代码的“window.location.pathname”部分应该会阻止由于您的文件结构而发生的任何错误 - 除非您在新文件夹中有子页面。在这种情况下,将 if 语句更改为: if(window.location.pathname == "/childfolder/childPage.htm") - 但将 childFolder 和 childPage 重命名为正确的名称。
    • 还是谢谢,div.length == 0 的情况表示,当前有这个 div(通过 ID 或类找到)。
    • 我用find是否是一个html元素来代替。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2014-01-03
    • 2014-02-05
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多