2012-11-08 101 views
3

可能的IAM有點confus但..你是如何處理以下情況:的Javascript的 「頁面」 初始化函數

web應用了大量的Javascript(JQuery的)的(沒有PHP只是JS/HTMLCSS)。 我有一個名爲「application.js」的大文件,包含在每個頁面中。

我要像不同的頁面火不同的功能:

http://mysite.de/index被稱爲火:index.init();

http://mysite.de/about被稱爲fire:about.init();

我覺得它像MVC的控制器呃?我的解決方案就像在每個頁面上使用開關和stativ「var = pageName」,但我確定有更好的方法?或者它是一個設計問題?

我知道像Require.js這樣的libs,但這對我的情況非常重要。

定義問題有點混亂:這是一個「好」的方式來實現JS?我知道我可以訪問windows.location或通過標題或以往任何方式進行標識!

+0

剛纔看看'window.location'怎麼樣?或者''或''標籤上的某種類? – Pointy

+2

我並不完全確定你在做什麼,但聽起來你可以創建一個包含與每個頁面相關的函數的對象,然後執行'pageFunctions [location.pathname] .init()'。 – pimvdb

回答

2

爲什麼你不只是做

<script type="text/javascript"> 
index.init(); 
</script> 

在索引頁?然後在每個頁面上調用不同的函數?

我知道一個動態的方式會很酷,但有時候你可以過度設計一些簡單的東西。

+0

這個「解決方案」是我沒有想過的,謝謝:-) – opHASnoNAME

+0

沒問題,有時候簡單的方法比重新發明輪子要好! –

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的。