2015-10-11 81 views
-1

在第一HTML文件中,我使用的可變categoryLinks的Javascript相對路徑

var categoryLinks = { 
    'Career prospects':'http://localhost/Landa/DirectManagers/511-HelenaChechik/Dim01.html', 
    'Compensation':'http://localhost/Landa/DirectManagers/511-HelenaChechik/Dim02.html',.... 

在第二HTML文件,我通過拉動一些的Json創建圖表:

$(function() { 
    var chart1; 
    $.get('graphdata/Dim1.txt?x='+microtime(), function(json){ 
    obj = eval('({'+json+'})'); 

在此Json中,有一行指的是類別鏈接以指向相關超鏈接:

labels: { 
formatter: function() { 
return '<a href="' + categoryLinks[this.value] + '">' + 
this.value + '</a>'; 
}, 
style: {color: 'blue',textDecoration: 'underline',fontSize:'13px'} 
} 

},

一切運作良好

我想在categoryLinks爲相對路徑,而不是絕對的定義的鏈接。我已經失敗

var categoryLinks = { 
    'Career prospects':'Landa/DirectManagers/511-HelenaChechik/Dim01.html', 
+1

'的eval( '({' + JSON + '})') ;'......真的嗎?我明白爲什麼你需要做eval,因爲你用$ .get獲取的數據中有'functions',但是調用那個數據'json'要求(將來)陷阱的 –

+1

這不是JSON,而是普通的JavaScript。 – Gumbo

回答

1

這取決於你將它們載入,你還沒有顯示在頁面的URL試過了,但你可能要領先/

var categoryLinks = { 
    'Career prospects':'/Landa/DirectManagers/511-HelenaChechik/Dim01.html' 
// Here ----------------^ 

。 ..或可能是領先的../

var categoryLinks = { 
    'Career prospects':'../Landa/DirectManagers/511-HelenaChechik/Dim01.html' 
// Here ----------------^^^ 

..或類似。

基本上是:

說你有

 
http://example.com/foo/page.html 

,你必須在它相對鏈接:

 
testing/stuff.html 

,它將取代page.html,給你:

 
http://example.com/foo/testing/stuff.html 

如果您不想在foo,你要麼使用一個領先/這意味着「開始在域的根」:

 
/testing/stuff.html 

...或..這意味着 「升了一級」:

 
../testing/stuff.html 

..可以多次使用,所以如果你有頁面:

 
http://example.com/this/is/deeply/nested.html 

相關鏈接

 
../../test.html 

給你

 
http://example.com/this/test.html 

另外請注意,此鏈接將相對於HTML頁面他們的時候,他們是不是的JavaScript腳本文件。

+0

'也請注意,鏈接將與它們所在的HTML頁面相關,而不是它們所在的JavaScript腳本文件。「 - 我認爲這是問題 –

+0

中混淆的根源兩個頁面處於相同級別 – user3387046

+0

我試過var categoryLinks = { '職業前景':'Landa/DirectManagers/511-HelenaChechik/Dim01.html'...問題是沒有htttp://部分,我沒有獲得超鏈接格式 – user3387046