2012-01-15 47 views
1

像下面的URL支持我的網站:如何將正確的URL傳遞給iframe頁面?

(1) http://mysite.example.com/section/ - main page 
(2) http://mysite.example.com/section/#page2 
(3) http://mysite.example.com/section/surname-name-middlename/ 
(4) http://mysite.example.com/section/surname-name-middlename/#page2 
(5) http://mysite.example.com/section/add 

現在我試圖表明我的網站在其他網站上的iframe。該站點支持setLocationonLocationChanged方法來定義散列並在散列相應地改變時作出反應。

我已經爲所有頁面定義了setLocation,這裏沒有問題。因此,上述鏈接的第三方網站看起來象下面這樣:

(1) http://3rdpartysite.com/mypage 
(2) http://3rdpartysite.com/mypage#page2 
(3) http://3rdpartysite.com/mypage#surname-name-middlename 
(4) http://3rdpartysite.com/mypage#surname-name-middlename,page2 
(5) http://3rdpartysite.com/mypage#add 

但現在我想實現正確的onLocationChanged行爲。

section是所有頁面的通用部分。

我試圖做的主網頁(上面,不支持選項(4))以下:

// location here is everything after # in url: http://3rdpartysite.com/mypage#... 
function onLocationChanged(location) { 
    if (location.indexOf('page')>-1) { 
    window.location.href = '#'+location; 
    } else if (location == 'add') { 
     window.location.href = window.location.host + window.location.pathname + '/add'; 
    } else if (location != '') { 
     window.location.href = window.location.host + window.location.pathname + '/'+location+'/'; 
     } 
} 

但它不能正常工作。我的方法有什麼問題?

回答

0

這裏是在主頁正常工作代碼:

function onLocationChanged(loc) { 
    var url = window.location.protocol + '//' + window.location.host + window.location.pathname; 
    if (loc.indexOf('page') > -1 && loc.indexOf(',page') == -1) { 
     window.location.href = '#' + loc; 
    } else if (loc == 'add') { 
     window.location.href = url + 'add'; 
    } else if (loc != '' && loc.indexOf(',page') > -1) { 
     window.location.href = url + '' + loc.split(',', 2)[0] + '/#' + loc.split(',', 2)[1]; 
    } else if (loc != '') { 
     window.location.href = url + '' + loc + '/'; 
    } 
} 

,這裏是爲其他頁面的代碼(不選擇(4)支持):

function onLocationChanged(loc) { 
    var url = window.location.protocol + '//' + window.location.host + '/' + window.location.pathname.split('/',3)[1] + '/'; 
    if (loc.indexOf('page')>-1) { 
    window.location.href = url + '#' + loc; 
    } else if (loc == 'add') { 
     window.location.href = url + 'add'; 
    } else if (loc != '') { 
     window.location.href = url + '' + loc + '/'; 
     } 
} 

不知道如何使它通用。