JavaScript通过“页面”初始化函数

3
也许我有点困惑,但是...你如何处理以下情况:
Web应用程序(没有PHP,只有JS/HTMLCSS)有很多Javascript(JQuery)。我有一个名为“application.js”的大文件,它包含在每个页面中。
我想在不同的页面上触发不同的函数,例如:
当调用http://mysite.de/index时,触发:index.init();
当调用http://mysite.de/about时,触发:about.init();
我认为这类似于MVC中的控制器?我的解决方案是在每个页面上使用switch和静态“var=pageName”,但我确定还有更好的方法?或者这是一个设计问题吗?
我知道像Require.js这样的库,但对于我的情况来说太过复杂了。
更具体地定义问题:这是实现JS的“好”方式吗?我知道我可以通过windows.location访问它,也可以通过标题等方式进行识别!

看看 window.location 怎么样?或者在 <html><body> 标签上使用某种类? - Pointy
2
我不确定你想要什么,但听起来你可以创建一个带有与每个页面相关的函数的对象,然后执行 pageFunctions[location.pathname].init() - pimvdb
2个回答

2

为什么不试着做

,这个问题涉及到it技术方面。
<script type="text/javascript">
index.init();
</script> 

在首页?然后在每个页面上调用不同的函数?
我知道动态方式很酷,但有时你可能会过度设计这么简单的事情。

这个“解决方案”是我没有想到的,谢谢 :-) - opHASnoNAME
没问题,有时候简单的方法比重新发明轮子更好! - Pete Uh

1
您可以检查document.URL并围绕它构建一个case语句。
var url = document.URL;
switch (url) {
case "http://mysite.de/index":
  index.init();
  break;
case "http://mysite.de/about":
  about.init();
  break;
}

如果这变得复杂,你可以使用像backbone.js这样的东西。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接